【问题标题】:tcl or sed or shell search replace multiple linestcl 或 sed 或 shell 搜索替换多行
【发布时间】:2018-11-16 15:12:30
【问题描述】:

我有一个文件,其中包含我想删除的部分:

 mu->doe = '( tr <br>
     tekt  ( tr uapp "(Finction rood (\;)<br>
     ord  ( a b c)<br>

  )<br>

  mu->Koe = '( tr<br>
     tekt  ( tr uapp "(Finction rood (\;)..<br>
     ord  ( a b c)<br>

  )<br>

  mu->Yoe = '( tr <br>
     tekt  ( tr uapp "(Finction rood (\;)<br>
     ord  ( a b c)<br>

  )<br>

我需要删除 mu-&gt; Koe 部分导致文件中的文本应该是:

  mu->doe = '( tr <br>
     tekt  ( tr uapp "(Finction rood (\;)<br>
     ord  ( a b c)<br>

  )<br>

   mu->Yoe = '( tr <br>
     tekt  ( tr uapp "(Finction rood (\;)<br>
     ord  ( a b c)<br>

  )<br>

我用过 sed:

sed -e '/mica/,+5d'

但行数可能会有所不同,这不是一个好的解决方案.. sed、tcl 或任何脚本都会有所帮助..

【问题讨论】:

  • 那是准确的行距吗?尾括号前有空行吗?
  • 是的。但是,我使用的 sed 是: sed -e '/Koe/,+4d' 这给了我我在这里寻找的东西。但有时行长度会变化

标签: bash perl sed tcl


【解决方案1】:

也许:

sed '/mu->Koe/,/^)$/d' file

这将从 Koe 行删除到仅包含右括号的下一行。您可能需要调整第二个模式以考虑空白。

【讨论】:

  • 谢谢.. 空格也把我搞砸了.. 有时两个空格有时更多.. 但这会行!
  • 也许/^[[:blank:]]\+)[[:blank:]]\+$/ 将占该行的前导/尾随空格。
猜你喜欢
  • 2021-02-18
  • 2011-01-23
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 2018-12-22
相关资源
最近更新 更多