【问题标题】:Deleting text between two strings using sed使用 sed 删除两个字符串之间的文本
【发布时间】:2015-07-17 10:04:45
【问题描述】:

我正在尝试删除多个 txt 文件中两个字符串之间的所有文本,包括字符串本身。

字符串是SUBJECT:BODY:

这是我一直在使用的:

sed '/SUBJECT:/,/BODY:/d' *.txt

它似乎运行没有问题,但完成后文件没有任何更改。

【问题讨论】:

  • sed 没有更改文件。它正在读取输入文件并写入标准输出。您可能想要捕获标准输出。
  • 哦,是的,你是对的!知道如何捕获每个单独文件的输出吗?我不想只是将它们全部重定向到一个文件中。
  • 哦。有一个我不知道的in-place 开关。很高兴知道。

标签: sed


【解决方案1】:

添加-i 标志以修改文件: sed -i '/SUBJECT:/,/BODY:/d' *.txt

【讨论】:

  • 检查您系统上的man sed。也许它的实现有些不同
  • 它需要一个扩展。谢谢你们。
  • sed -i 适用于 GNU sed 而不是 posix 版本,在这种情况下使用重定向。此外 -i 有时需要一个参数(在 Mac 上)有时作为一个选项(大多数 Linux 常见发行版)
猜你喜欢
  • 2015-11-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 2019-01-24
  • 2021-05-26
  • 1970-01-01
  • 2021-07-23
  • 2013-05-14
相关资源
最近更新 更多