Unix 使用find和replace cmd修改grep输出

Unix 使用find和replace cmd修改grep输出,unix,Unix,我使用grep将日志大文件分为小文件,但输出日志文件中仍然有很长的dir路径,这在每次都很常见。我每次都要查找和替换日志文件 我有没有办法grep-r“格式化”log.log |执行findnreplce事情?Sed会做你想做的事。用$file中的bar替换foo的所有匹配项的基本语法为: sed-i's/foo/bar/g'$file 如果您只是想删除而不是替换,只需省略“bar”(因此s/foo//g) 有关更多详细信息,请参见,例如正则表达式支持 sed -n '/match/s/patt

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


我有没有办法grep-r“格式化”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
匹配的所有行,并将
模式的所有实例替换为
repl
。因为您的行可能包含路径,所以可能需要使用不同的delimeter<代码>/
是惯例,但您也可以执行以下操作:

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

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

grep
在文件上使用递归标志毫无意义。如果提供了足够的信息,您可以尽可能使用
-o
选项来
grep