14

我在 bash 脚本中使用 awk 并执行以下操作:

awk -F, -v result_file=$2'{
print $2 $1 > result_file
}' $data_file

在输出文件中,每行末尾都有一个 control-M '^M' 字符。怎么了?

4

1 回答 1

17

记录分隔符自动设置为当前系统的行尾,在\n基于 Unix 的系统上为 LF ( \r\n),在 MS 系统上为 CR-LF ( ),\r在 Mac OS X 之前的 Mac OS 上为 CR ( )。所以要工作在 MS 系统上记录的文件上,适当地设置记录分隔符,在您的情况下:

awk -v RS='\r\n' ...
于 2012-10-26T06:50:18.250 回答