0

grep を使用してログの大きなファイルを小さなファイルに並べ替えますが、出力ログ ファイルには長いディレクトリ パスがあり、これは毎回一般的です。毎回検索と置換を行う必要があります。

grep -r "format" log.log |をgrepできる方法はありませんか?実行するfindnreplce

4

2 に答える 2

1

Sedあなたが望むことをします。$file で foo のすべての一致を bar in-place に置き換える基本的な構文は次のとおりです。

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

置換するのではなく単に削除したい場合は、単純に「バー」を省略します (s/foo//g)。

正規表現のサポートなど、より多くの詳細については、このチュートリアルを参照してください。

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

matchのすべてのインスタンスを にpattern置き換えて、正規表現 に一致するすべての行を出力しますrepl。行にパスが含まれている可能性があるため、別の区切り記号を使用することをお勧めします。/が通例ですが、次のこともできます。

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

2 番目のケースでは、省略patternするとmatch、置換されるパターンに が使用されます。

于 2013-02-08T13:44:22.990 に答える