我可以使用
将LF转换为CRLFsed "s/$/`echo -e \\\r`/"
我也可以用
删除所有行结尾perl -pe 's/\r|\n//g'
我创建了一个修改过的版本,我认为它只会删除CRLF中的CR,但它似乎没有用,有什么想法吗?
perl -pe 's/\r//g'
更新:perl脚本不适用于Apple Mac OS X TextMate编辑器,因为它不显示或读取\ r。
答案 0 :(得分:1)
在非Windows框中,您提供的代码确实有效。
$ echo -ne "foo\r\nbar\r\n" | od -c
0000000 f o o \r \n b a r \r \n
0000012
$ echo -ne "foo\r\nbar\r\n" | perl -pe's/\r//g' | od -c
0000000 f o o \n b a r \n
0000010
在Windows机器上(默认情况下在读取时翻译CRLF⇒LF,在写入时翻译LF⇒CRLF),您可以使用
perl -pe"BEGIN { binmode STDOUT }"
有便携式解决方案,但它们更长。
答案 1 :(得分:0)
pip install cereja
import cereja
cereja.lf_to_crlf(dir_or_file_path)
如果dir路径将是递归的
或
cereja.lf_to_crlf(dir_or_file_path, ext_in=[“.py”,”.csv”])
您可以替代任何标准。参见filetools模块