ฉันกำลังพยายามสร้างคำสั่งที่ซับซ้อน (โดยใช้การแทนที่เชลล์และนิพจน์ทางคณิตศาสตร์) และฉันสงสัยว่าใครสามารถช่วยฉันเข้าใจผลลัพธ์ของ ห้องน้ำ
สั่งการ.
ตัวอย่างเช่น ต่อไปนี้เป็นตัวอย่าง:
[11:10:33] labreu:~ $ wc -l test.txt
5 ทดสอบ. txt
[11:10:40] labreu:~ $ cat test.txt| สุขา -l
5
เหตุใดคำสั่งจึงคืนค่าต่างกัน ฉันลองดูที่หน้าคนแล้ว แต่ไม่มีอะไรเกี่ยวกับมัน ...
Btw ฉันแค่ถามเกี่ยวกับเรื่องนี้เพราะฉันพยายามข้าม x บรรทัดของไฟล์ด้วยคำสั่งต่อไปนี้:
[11:25:35] labreu:~ $ tail -n "+$(( $(wc -l test.txt)-2 ))" test.txt
zsh: นิพจน์ทางคณิตศาสตร์ไม่ดี: ตัวดำเนินการคาดหวังที่ `test.txt-2...'
หลังจากที่สังเกตเห็นว่า ห้องน้ำ
ผลตอบแทน ชื่อไฟล์ number_of_lines
และการใช้ไพพ์ (หรือการเปลี่ยนเส้นทางให้ผลลัพธ์ที่แตกต่างออกไป) ฉันจัดการเพื่อให้ได้สิ่งที่ต้องการโดยใช้สิ่งนี้:
หาง -n "+$(( $(wc -l<test.txt )-2 ))" test.txt
หาง -n "+$(( $(cat test.txt | wc -l )-2 ))" test.txt
อย่างไรก็ตาม คำถามหลักยังคงอยู่: ทำไม ห้องน้ำ
คำสั่งส่งคืนเอาต์พุตที่แตกต่างกันเมื่อใช้ภายในไพพ์ (หรือเปลี่ยนทิศทางอินพุต)?
ขอบคุณ