文件同时包含CRLF和LF。我想删除CRLF

问题描述 投票:0回答:2

我有一个文件,其中既包含CRLF,也包含LF。我正在尝试从文件中删除CRLF。我的文件中另一个先前已存在的LF,我想留在后面。我有麻烦,因为似乎sed无法识别CRLF,或者因为tr同时删除了CRLF和LF。我已经尝试过,

tr -d '\r\n' <file.txt> file2.txt

它也在删除我文件中的LF。我尝试仅删除\ r,但随后CRLF中的LF被遗忘了。我希望删除CRLF或至少将其转换为空格,但该行不会结束。

有帮助吗?

我尝试过:

tr -d '\r\n' <file.txt> file2.txt

我也尝试过sed,但找不到CRLF。

sed tr
2个回答
1
投票

这会将dos格式的文件转换为linux / unix格式。

dos2unix file

0
投票

tr的参数是要操作的字符的列表,而不是字符串,因此,\r\n表示\r\n,而不是\r后跟\n。默认情况下,sed无法删除\r\n,因为sed一次只能读取一条\n终止的行,因此sed缓冲区中永远不会有\r\n,只有通过sed读取\r后删除了\n。 >

您可以使用GNU awk进行多字符RS:

awk -v RS='\r\n' -v ORS= '1' file
© www.soinside.com 2019 - 2024. All rights reserved.