快速回答。您可以使用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)
也可以。
:~$ 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
与$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(获取echo line的第三个单词。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(获取echo行的最后一个单词。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
希望这可以帮助!