首页 > 解决方案 > 用于删除断字字符的 Sed 脚本

问题描述

我们有一种情况,长文本行被字符分成多行=。我认为像sed 's/=$//g' old-file > new-file(或sed 's/\=$//g' old-file > new-file)这样的简单 sed 脚本可以解决这个问题。但是,这个 sed 命令并没有像我预期的那样重新组合分解的文本行。

例如,如果 old-file 的内容是:

I wonder who came up with the phrase A qu=
ick brown fox jumps over the lazy dog.  

我希望新文件的内容是:

I wonder who came up with the phrase A quick brown fox jumps over the lazy dog.

问)从文本行中删除尾随字符的最佳方法是什么,如果该字符表明它是断字字符?

标签: bashshellsed

解决方案


一个简单的awk解决方案是将记录分隔符设置为=\n,将输出记录分隔符设置为空,然后打印。

awk -v RS="=\n" -v ORS="" '1' file

或者

awk 'BEGIN{ RS="=\n"; ORS="" } 1' file

推荐阅读