我是 sed 新手,正在清理一个非常大的文件。清理后的文档看起来正确,但当我将其读入 R 时,它显示每行\016\t
末尾都附加了。我已经弄清楚了 是\t
一个制表符, 是\016
一个 octl(?),但我还没有弄清楚如何将其放入正确的表达式中。
对新的 sed 用户(和 reg 表达式!)的任何帮助都将不胜感激。
答案1
以下适用于bash
:
sed $'s/\016\t$//' infile >outfile
此正则表达式\016\t$
匹配016
行末的八进制数和制表符。如果找到此字符串,则将其替换为空。
字符串格式$'...'
需要bash
。我使用 GNU 测试了上述内容sed
,但它据说sed
也应该可以与 BSD 兼容。
另一种方法可以在sed
没有 的GNU 环境下运行bash
,方法是:
sed 's/\o016\t$//' infile >outfile