คำตอบที่รวดเร็ว. คุณสามารถใช้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 เป็นเพียงคำสั่งปกติที่คุณจะใช้กับบรรทัดคำสั่งเช่นเพิ่มใน>(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 (คำสั่ง Pipe ดึงคำสุดท้ายทั้งหมด):
:~$ echo "This is just five words" | tee >(wc -l) >(wc -w) >(wc -c) | awk '{print $NF}'
words
24
5
1
ตัวอย่างที่ 2 (ไม่แสดงเอาต์พุตของคำสั่ง wc คำสั่ง Pipe คว้าคำที่ 3):
:~$ echo "This is just five words" | tee >(wc -l) >(wc -w) >(wc -c) | awk '{print $3}'
just
ตัวอย่างที่ 3 (จับคำที่ 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
หวังว่านี่จะช่วยได้!