我有一个文件:
A.TXT
f1,f2,f3
a,b,c
d,e,f
g,h,i
我想通过删除f3中的换行符来连接f2和f3 [即。 f2 = f2.f3]并更新文件。我尝试了下面的命令,但新行字符也被插入。如何删除该部分?
awk -F "," -v OFS=, '{$2 = $2$3;print}' abc.txt > abc.tmp && mv abc.tmp abc.txt
答案 0 :(得分:3)
这是由于在行尾存在DOS换行符\r
。
您可以将{gnu awk命令与RS
用作\r\n
来处理:
awk -v RS='\r\n' 'BEGIN{FS=OFS=","} NR>1{$2 = $2$3} 1' a.txt
f1,f2f3,f3
a,bc,c
d,ef,f
g,hi,i
或者,您可以在使用常规awk命令之前运行dos2unix
命令:
dos2unix a.txt
awk 'BEGIN{FS=OFS=","} NR>1{$2 = $2$3} 1' a.txt