การเปลี่ยนเส้นทางย้อนหลังเหมือนกับท่อหรือไม่


คำตอบ:


17

สำหรับคำถามเรื่องของคุณ: ไม่ได้รับstdinจากเนื้อหาไฟล์ (การเปลี่ยนเส้นทางอินพุต ) ไม่เหมือนกับการไพพ์เอาต์พุตของโปรแกรมหนึ่งไปยังอินพุตของโปรแกรมอื่น

แต่เนื่องจากคุณcatเพียงพิมพ์เนื้อหาของไฟล์ผลลัพธ์จะเหมือนกันในตัวอย่างนั้น


แต่ต่อไปนี้จะให้ผลลัพธ์ที่แตกต่างกันมาก:

$ cat * | sort
$ sort < *

หากมีมากกว่าหนึ่งไฟล์ที่ตรงกันไฟล์หลังจะสร้างขึ้น

-bash: *: ambiguous redirect

sortเพราะมันเป็นเพียงไม่เป็นความยืดหยุ่นเป็นอดีตซึ่งจะจับคู่แมวไฟล์ทั้งหมดและพวกเขาเป็นท่อใส่ลงใน


3
สิ่งที่เกี่ยวกับ ... sort *? ไม่มีการใช้งานที่ไร้ประโยชน์ของแมวที่ไม่มีการใช้งานที่ไร้ประโยชน์ของร้าย, ที่สั้นที่สุดในการพิมพ์ที่ง่ายที่สุดที่จะคิดและผมเชื่อว่า GNU จัดเรียงจะปฏิบัติต่อคุณเพิ่มประสิทธิภาพความยืดหยุ่นสำหรับไฟล์ขนาดใหญ่มาก (ไม่แน่ใจว่าเกี่ยวกับที่ - ครึ่งสิ่งที่จดจำนั่น)
sehe

1
@ sehe อาจเป็นไปได้ ฉันแค่ใช้ตัวอย่างเพื่อแสดงว่าทั้งสองแตกต่างกัน นี่ไม่ได้เกี่ยวกับการใช้การเรียงลำดับอย่างมีประสิทธิภาพ การเรียงลำดับมีความยืดหยุ่นมากกว่านั้นแน่นอน
Daniel Beck

@DanielBeck เกี่ยวกับประสิทธิภาพsort < txtfileมีประสิทธิภาพมากกว่าcat txtfile | sortหรือไม่
Pacerier
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.