use*_*159 2 sed text-processing files newlines
我想删除所有回车后跟换行符 (CRLF),例如\r\n在文件中。我怎样才能做到这一点?我无法使用,dos2unix因为它用 LF 替换了 CRLF。而且我不能使用,tr因为这也将替换任何\n前面没有\r. 我怎样才能做到这一点?
sed ":a;/\r$/{N;s/\r\n//;b a}"
Run Code Online (Sandbox Code Playgroud)
这将匹配'\r'结尾处的所有行(后跟'\n')。在这些行上,它会先追加输入的下一行(同时将'\n分隔符放在中间),然后将结果替换为"\r\n"空字符串,然后返回开头查看模式空间的新内容是否没有碰巧再次匹配。
按照评论:如果您还想'\r'从文件中删除任何其他内容,只需在删除 CRLF 组合后添加它:
sed ":a;/\r$/{$!N;s/\r\n//;t a};s/\r//g"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7336 次 |
| 最近记录: |