回答:
ターミナルで最初のコマンドの出力を確認し、2番目のコマンドの出力をファイルに保存します。
あなたが見ているものがstdoutかstderrかを気にしない限り、あなたはまだ使うことができますtee
:
myscript | tee /dev/stderr | grep -P 'A|C' > out.file
Linuxで動作します。「/ dev / stderr」が他の* nixにも同様に適用できるかどうかはわかりません。
tee /dev/tty
必要があるという私の要件に素晴らしく役立ちました!ありがとう!:-)stdout
stdin
{ ... | tee /dev/fd/3 | grep -e A -e C > out.file; } 3>&1
または、プロセス置換(ksh93、zshまたはbash)の場合:
... | tee >(grep -e A -e C > out.file)
zshの場合:
... >&1 > >(grep -e A -e C > out.file)
/dev/fd/3
に置き換えることができます>(cat 1>&3)
ここに別の方法がありsed
ます:
myscript | sed '/PATTERN/w out.file'
デフォルトでは、sed
すべての行を出力します。この場合、stdoutはstdinと同じになります(つまりmyscript
、画面上の出力全体が表示されます)。
また、全てのラインマッチングをPATTERN
するw
にrittenout.file
/dev/stderr
一般的です。/dev/tty
(現在の端末を意味する)もここで動作し、標準です。