我使用grep将日志大文件排序为小文件,但输出日志文件中仍然有很长的dir路径,每次都是常见的。我每次都要查找和替换。
我有什么方法可以grep -r“format”log.log |执行findnreplce
事情?
答案 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
用于替换模式。