bash - 用于删除断字字符的 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.
问)从文本行中删除尾随字符的最佳方法是什么,如果该字符表明它是断字字符?
解决方案
一个简单的awk
解决方案是将记录分隔符设置为=\n
,将输出记录分隔符设置为空,然后打印。
awk -v RS="=\n" -v ORS="" '1' file
或者
awk 'BEGIN{ RS="=\n"; ORS="" } 1' file
推荐阅读
- javascript - 如何在反应中将两个不同的数据推送到数组中
- apache-flink - Apache Flink 中的窗口和状态
- reactjs - 是否有一种有效的方法可以根据当前通过 uid 登录的用户返回数据?
- flutter - 我如何在颤动中获取文档ID
- xml - IMPORT XML 函数 - 股票价格 - Google 表格
- javascript - JavaScript Every() 方法返回假,即使它是真的?
- linux - 更改 Dockerfile 中的某些内容时,如何阻止 docker 从头开始下载所有内容?
- java - 如何使用 PDFViewer 在 Android 的 Webview 中打开 pdf
- javascript - Jquery 使用 for 循环的值附加到 id 属性
- julia - 模块中不可见的其他模块