関連情報が見つかりませんでしたが、stderrの特定の部分だけをファイルに書き込もうとしています。例えば
実行しtar -xzf file 2>> log.txt
てエラーが発生しました
tar: Child returned status 1
コマンド名なしでChildが返した状態の1部分だけを記録したいと思います。
答え1
tar -xzf file 3>&1 1>&2 2>&3 | grep -oP '^app: \K.*$' | tee logfile
答え2
を使用すると、zsh
次のことができます。
tar -xzf file 2> >(sed 's/^tar: //' >> file.log)
これにより終了tar
ステータスが保存されます。
あなたはこれを行うことができますksh
。bash
yash
sed
このコマンドを使用する場合file.log
。
他のオプションはbash
以下を使用することです:
{ tar -xzf file 2>&1 >&3 3>&- | sed 's/^tar: //' >> file.log 3>&-; } 3>&1
tar_exit_status=${PIPESTATUS[0]}
tar
複数のシェルの場合は、空のargv [0]を使用して呼び出すこともできます。
(exec -a '' tar -xzf file)
この場合、エラーメッセージは次のようになります。
: Child returned status 1