0

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

我没有办法 grep -r "format" log.log | 执行findnreplce事情?

4

2 回答 2

1

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

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

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

有关更多详细信息,请参阅本教程,例如正则表达式支持。

于 2013-02-08T13:33:17.980 回答
0
sed -n '/match/s/pattern/repl/p'

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

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

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

于 2013-02-08T13:44:22.990 回答