我使用 grep 将日志大文件排序为小文件,但输出日志文件中仍然有很长的 dir 路径,这很常见。我每次都必须查找和替换。
我没有办法 grep -r "format" log.log | 执行findnreplce
事情?
我使用 grep 将日志大文件排序为小文件,但输出日志文件中仍然有很长的 dir 路径,这很常见。我每次都必须查找和替换。
我没有办法 grep -r "format" log.log | 执行findnreplce
事情?
Sed
会做你想做的。在 $file 中用 bar 就地替换 foo 的所有匹配项的基本语法是:
sed -i 's/foo/bar/g' $file
如果您只是想删除而不是替换,只需省略“bar”(所以 s/foo//g)。
有关更多详细信息,请参阅本教程,例如正则表达式支持。
sed -n '/match/s/pattern/repl/p'
将打印与 regex 匹配的所有行match
,并将所有实例pattern
替换为repl
. 由于您的行可能包含路径,您可能希望使用不同的分隔符。/
是习惯性的,但你也可以这样做:
sed -n '\@match@s@@repl@p`
在第二种情况下,省略pattern
将导致match
用于要替换的模式。