在bash脚本中将csv转换为CRLF行结尾

时间:2013-01-23 15:44:34

标签: bash sed

我有一个csv,我正在使用csv2json转换为JSON。我在更改脚本后发现了问题,因为我的行结束了。

当我尝试将我的csv(original.csv)转换为json时,由于行结尾而出现错误。所以我在Coda(我正在使用的文本编辑器)中打开了csv,并选择“转换为CRLF”,保存文件,然后重新运行csv2json。它奏效了。

我的问题是,如何在bash脚本中将original.csv转换为CRLF?

我尝试使用sed没有运气:

sed 's/$'"/`echo \\\r`/" original.csv > new.csv

谢谢

2 个答案:

答案 0 :(得分:1)

不是bashsed,而是另一个非常简单的解决方案:

在Debian和Ubuntu之类的派生中,您可以使用unix2dos命令轻松地将LF转换为文件中的CRLF

unix2dos -n original.csv new.csv

您可以使用dos2unix包安装它:

apt-get install dos2unix

要再次将CRLF转换为LF,请使用dos2unix命令。

答案 1 :(得分:1)

结束使用perl:

perl -pe 's/\r\n|\n|\r/\r\n/g' original.csv > new.csv