Score:1

zsh: ทำความเข้าใจเอาต์พุตคำสั่งจาก wc และส่งต่อไปยังคำสั่งอื่น

ธง gq

ฉันกำลังพยายามสร้างคำสั่งที่ซับซ้อน (โดยใช้การแทนที่เชลล์และนิพจน์ทางคณิตศาสตร์) และฉันสงสัยว่าใครสามารถช่วยฉันเข้าใจผลลัพธ์ของ ห้องน้ำ สั่งการ.

ตัวอย่างเช่น ต่อไปนี้เป็นตัวอย่าง:

[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 

อย่างไรก็ตาม คำถามหลักยังคงอยู่: ทำไม ห้องน้ำ คำสั่งส่งคืนเอาต์พุตที่แตกต่างกันเมื่อใช้ภายในไพพ์ (หรือเปลี่ยนทิศทางอินพุต)?

ขอบคุณ

Score:0
ธง cn

วิธีแรกที่คุณใช้ในบรรทัดคำสั่ง วิธีที่ 2 สามารถใช้เมื่อเข้ารหัส

คำสั่งสามารถทำได้มากกว่า 1 ไฟล์ดังนั้นจึงจำเป็นต้องบอกคุณว่าจำนวนบรรทัดเป็นของไฟล์ใด

$ wc -l *.xml
   712 1.xml
  3055 2.xml
   464 3.xml
  3055 4.xml

สุขา -l ตัวมันเองไม่ได้แยกความแตกต่างระหว่างไฟล์ 1 ไฟล์ สัญลักษณ์แทน หรือหลายไฟล์ ทำโดยไม่มีชื่อที่ฉันมักจะใช้ wc -l <file.txt ด้วยการเปลี่ยนเส้นทาง

วิธีเชื่อมต่อ/เวอร์ชันไพพ์คือ 1 ไฟล์เสมอ ดังนั้นชื่อไฟล์จึงมีความหมายโดยนัย สำหรับลูปจะยังคงหมายถึง 1 ไฟล์ต่อ สุขา -l แต่ซ้ำเดิมหลายๆครั้ง

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา