使用find和replace cmd修改grep输出

时间:2013-02-08 13:11:38

标签: unix

我使用grep将日志大文件排序为小文件,但输出日志文件中仍然有很长的dir路径,每次都是常见的。我每次都要查找和替换。

我有什么方法可以grep -r“format”log.log |执行findnreplce事情?

2 个答案:

答案 0 :(得分:1)

Sed会做你想要的。在$ file中使用bar替换foo的所有匹配项的基本语法是:

sed -i 's/foo/bar/g' $file

如果你只是想删除而不是替换,只需省略'bar'(所以s / foo // g)。

有关详细信息,请参阅this tutorial,例如正则表达式支持。

答案 1 :(得分:0)

sed -n '/match/s/pattern/repl/p'

将打印与正则表达式match匹配的所有行,并将pattern的所有实例替换为repl。由于您的行可能包含路径,因此您可能希望使用不同的分隔符。 /是惯例,但您也可以这样做:

sed -n '\@match@s@@repl@p`

在第二种情况下,省略pattern将导致match用于替换模式。