複数のログファイルからのteeおよびgrep出力のリダイレクト

複数のログファイルからのteeおよびgrep出力のリダイレクト

STDOUT + STDERRスクリプトの出力を次にリダイレクトし、Logfile 1grepを次にリダイレクトします。Logfile 2

./run_test.sh 2>&1 | tee -a /var/log/log1.log | (grep 'START|END') > /var/log/myscripts.log

どうすればいいですか?

別の構文を試しましたが、動作しません。

出力は最初のログにのみリダイレクトされます。 2番目のログは空です。

./run.sh 2>&1 | tee -a ~/log1.log | grep 'Start' > /var/log/myscripts.log
./run.sh 2>&1 | tee -a ~/log1.log | egrep 'Start' > /var/log/myscripts.log
./run.sh 2>&1 | tee -a ~/log1.log | grep -E 'Start' > /var/log/myscripts.log

log1.log出力が含まれています。myscripts.log空いた。

ベストアンサー1

そこには括弧は必要ありません。また、grep論理ORの構文はですgrep 'foo\|bar|使用しない限り脱出する必要があります-E。したがって、次のいずれかが実行されます。

./run_test.sh 2>&1 | tee -a log1.log | grep 'START\|END' > myscripts.log

または

./run_test.sh 2>&1 | tee -a log1.log | grep -E 'START|END' > myscripts.log

または

./run_test.sh 2>&1 | tee -a log1.log | grep -P 'START|END' > myscripts.log

おすすめ記事