素早い回答。を使用tee >(what_to_do) >(another_thing_to_do)
して、実行したいさまざまなことに対してコマンドを実行し続けることができます。
例:
元のテストファイル出力:
:~$ cat testfile.txt
Device Model: LITEONIT LCS-256M6S 2.5 7mm 256GB
Serial Number: TW0XFJWX550854187616
tee
コマンドが追加された出力:
:~$ cat testfile.txt | tee >(tail -1) >(wc) >(awk '{print $3,$1,$2}')
Device Model: LITEONIT LCS-256M6S 2.5 7mm 256GB
Serial Number: TW0XFJWX550854187616
LITEONIT Device Model:
TW0XFJWX550854187616 Serial Number:
2 10 91
Serial Number: TW0XFJWX550854187616
teeの各コマンドは、add in >(head -1 | wc)
worksのように、コマンドラインで使用する通常のコマンドです。
:~$ cat testfile.txt | tee >(tail -1) >(head -1 | wc) >(awk '{print $3,$1,$2}')
Device Model: LITEONIT LCS-256M6S 2.5 7mm 256GB
Serial Number: TW0XFJWX550854187616
1 7 52
LITEONIT Device Model:
TW0XFJWX550854187616 Serial Number:
Serial Number: TW0XFJWX550854187616
または、awk
with $NF
を次のwc
ように使用して、最後の行の最後の単語を取得することもできます。
:~$ cat testfile.txt | tail -1 | tee >(wc) >(awk '{print $NF}')
Serial Number: TW0XFJWX550854187616
TW0XFJWX550854187616
1 3 39
注:|
パイプコマンドを最後に追加すると、コマンドから複数のコマンドを使用してオーバーライドできますtee
。私がテストしてきたいくつかの例があります:
例1(すべての最後の単語を引くパイプコマンド):
:~$ echo "This is just five words" | tee >(wc -l) >(wc -w) >(wc -c) | awk '{print $NF}'
words
24
5
1
例2(wcコマンドの出力を表示しません。3番目のワードを取得するパイプコマンド。):
:~$ echo "This is just five words" | tee >(wc -l) >(wc -w) >(wc -c) | awk '{print $3}'
just
例3(エコー行の3番目のワードを取得します。Teeコマンド。):
:~$ echo "This is just five words" | tee >(wc -l) >(wc -w) >(wc -c) >(awk '{print $3}')
This is just five words
just
24
5
1
例4(エコー行の最後の単語を取得します。Teeコマンド。):
:~$ echo "This is just five words" | tee >(wc -l) >(wc -w) >(wc -c) >(awk '{print $NF}')
This is just five words
words
24
5
1
お役に立てれば!