【发布时间】:2018-06-07 09:02:11
【问题描述】:
我有一个 csv 文件,它混合了 CRLF 和 LF。在某些时候有一个 LF,实际上内容属于之前的行。
例子:
smith;pete;he is very nice;1990CRLF
brown;mark;he is very nice;2010CRLF
taylor;sam;he isLF
very nice;2009CRLF
在我的脚本中,我想删除 LF 的所有独立实例。 我尝试使用 sed:
sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g' $my_file
此解决方案的问题在于,属于 CRLF 的 LF 也被替换为空格字符。
【问题讨论】:
-
你能尝试一下
LF的Unicode吗? -
使用 GNU sed,您可以使用
sed ':a;N;$!ba;s/\r\n/<<<CRLF>>>/g;s/\n/ /g;s/<<<CRLF>>>/\r\n/g;' my_file,但可能仅在文件不太大的情况下。