在 bash 脚本中,我该如何删除两个字符串之间的文本,包括字符串。
原文:
(ABC blah1)blah 2(def blah 5)blah 7)(DEF blah 8)blah 9
我想删除 '(def' 和下一个 ')' 之间的所有文本。所以我想要的输出是:
(ABC blah1)blah 2blah 7)blah 9
最好让搜索不区分大小写...在上面的示例中,它找到并删除了 '(def...)' 和 '(DEF...)'
我努力了:
echo "(ABC blah1)blah 2(def blah 5)blah 7)(DEF blah 8)blah 9" | sed 's/(def.*)//gI'
但输出是:
(ABC blah1)blah 2blah 9
我认为这是因为 '.*' 在 sed 中是贪婪的。
任何想法如何格式化我的 sed 搜索字符串?sed 甚至是最好的工具吗?我从 bash 脚本运行它,所以任何基本的 util 都可以通过 bash 使用。