将Grep结果传送到Sed-仅对grep结果进行sed

时间:2018-08-23 15:45:12

标签: sed grep

[Mac OS]

似乎sed需要输入文件,而我无法将grep传递给它。尽管sed可以像grep一样进行匹配,但是如果它同时处理查找和替换操作,则会使sed操作非常复杂。

例如,如果我想删除以“ T”开头的每一行的第三个单词,那么与创建复杂的正则表达式相比,分隔查找/替换命令要方便得多。

仔细查看SO答案,似乎没有一个优雅的解决方案,您可以在不涉及新文件的情况下将grep传递给sed。我确实找到了它,几乎可以满足我的要求:

sed -i "s/$(grep 'old' input.txt)/new/g" input.txt

但是它不能很好地处理多个匹配项。

我将概括一下:

是否有更好的方法来查找文本文件中的特定行并就地修改这些行?最好是cli,或尽可能低级别。

0 个答案:

没有答案