我有以下 csv 文件:
hostname1,this is a test,001^M
hostname2,this is
a test,002^M
hostname3,this
is
a
test,003^M
第一行是该行的正确格式。我希望其他行遵循相同的格式。问题在于第二列,其中一些有回车符,因此第三列位于新行上,但我想使用 sed 来连接所有行,无论它们分开了多少行。
答案1
假设^M
序列代表 CR 字符,即
$ cat -et file.csv
hostname1,this is a test,001^M$
hostname2,this is$
a test,002^M$
hostname3,this$
is$
a$
test,003^M$
那么如果行不以 CR 结尾,您可以使用以下命令将行连接到下一行:
sed -e :a -e '/\r$/!N; s/\n//; ta' file.csv
前任。
$ sed -e :a -e '/\r$/!N; s/\n//; ta' file.csv | cat -et
hostname1,this is a test,001^M$
hostname2,this isa test,002^M$
hostname3,thisisatest,003^M$