我正在bash脚本中使用awk,并执行以下操作:
awk -F, -v result_file=$2'{
print $2 $1 > result_file
}' $data_file
在输出文件中,每行末尾都会有一个控制符'^M'字符。这是什么问题?
记录分隔符会自动设置为当前系统的行尾符。在基于Unix的系统上是LF(\n
),在MS系统上是CR-LF(\r\n
),在Mac OS X之前的Mac OS上是CR(\r
)。因此,要处理在MS系统上记录的文件,请适当设置记录分隔符,例如:
awk -v RS='\r\n' ...
\n
作为换行符。而Mac OS 9则不是基于Unix的系统,使用\r
作为换行符。 - Jonathan Leffler
awk -v RS='\r\n' ...
。 - Thor