awk print在行尾添加了一个control-m字符

pun*_*wal 13 unix awk

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

awk -F, -v result_file=$2'{
print $2 $1 > result_file
}' $data_file
Run Code Online (Sandbox Code Playgroud)

在输出文件中,我在每行的末尾得到一个控制-M'^ M'字符.怎么了?

Tho*_*hor 16

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

awk -v RS='\r\n' ...
Run Code Online (Sandbox Code Playgroud)