我有以下awk脚本:
BEGIN { FS=","; OFS=","; }
{ print $4,$1,$2; }
Run Code Online (Sandbox Code Playgroud)
这是我的输入文件:
a1,a2,a3,a4
b1,b2,b3,b4
Run Code Online (Sandbox Code Playgroud)
我希望它能回归:
a4,a1,a2
b4,b1,b2
Run Code Online (Sandbox Code Playgroud)
但事实并非如此.相反,我得到:
,a1,a2
,b1,b2
Run Code Online (Sandbox Code Playgroud)
这是为什么?
最有可能的原因是由于每行末尾的DOS行结束\r.使用此gnu-awk命令可获得正确的输出:
awk -v RS='\r?\n' 'BEGIN { FS=OFS="," } { print $4,$1,$2 }' file
a4,a1,a2
b4,b1,b2
Run Code Online (Sandbox Code Playgroud)