use*_*881 4 regex csv bash awk sed
我试图用倒数第二列替换第二列,并删除最后三列.例如,我有这个sample.csv
1,2,3,4,5,6
a,b,c,d,e,f
g,h,i,j,k,l
Run Code Online (Sandbox Code Playgroud)
我想输出:
1,5,3
a,e,c
g,k,i
Run Code Online (Sandbox Code Playgroud)
我正在使用此命令:
awk 'BEGIN{FS=OFS=","} {$2=$(NF-1); NF=NF-3}'1 sample.csv
Run Code Online (Sandbox Code Playgroud)
当我在excel中查看csv文件时,它可以正常工作.但是,当我在记事本中查看.csv文件时,我注意到一行中的最后一项连接到下一行中的第一项.所以我得到了
1,5,3a,e,cg,k,i
Run Code Online (Sandbox Code Playgroud)
任何人都可以给我任何关于如何解决问题的建议,这样我就可以得到.csv文件,为每一行创建一个新的段落,如所需的输出?谢谢.
在\r每行末尾添加回车符()应该有助于:
awk 'BEGIN{FS=OFS=","} {$2=$(NF-1); NF=NF-3;sub(/$/,"\r");}'1 sample.csv
Run Code Online (Sandbox Code Playgroud)