ทำไมคำสั่ง tr ไม่อ่านจากไฟล์?


11

ฉันค้นหาหนังสือ Unix ชายและหน้าวิกิพีเดียสำหรับtrแต่ไม่สามารถหาสาเหตุที่มันถูกออกแบบ / ใช้งานในลักษณะที่ไม่ได้อ่านจากไฟล์ แต่เคร่งครัดจากอินพุตมาตรฐานเท่านั้น ยกตัวอย่างเช่นเครื่องมือเช่นwc, grep, sedและawkทุกคนจะมีความสุขอ่านข้อมูลจากไฟล์ถ้าให้หรือจากการป้อนข้อมูลมาตรฐาน / มีเหตุผลที่น่าสนใจในการออกแบบtrด้วยวิธีนี้หรือไม่?


2
มันไม่ได้เข้ารหัสด้วยวิธีนั้นและชีวิตดำเนินต่อไป ... ฉันสงสัยว่ามันจะต้องเป็นอีกครั้งกับเครื่องที่มีการ จำกัด หน่วยความจำอย่างรุนแรงและ tr มีอายุมาก ระบบสาธารณูปโภคของ Unix นั้นถูกออกแบบโดยคนหลายคนและมีความไม่สอดคล้องกันหลายประการและการทำงานซ้ำซ้อนในระบบสาธารณูปโภค
Rui F Ribeiro

3
เพียงเพื่อชี้ให้เห็น: คำถามนี้ถูกตั้งค่าสถานะเป็นหลักตามความคิดเห็น แต่ไม่ควรปิด IMHO เรามีคำถามที่คล้ายกันในเรื่องนี้ว่าทำไมสิ่งต่าง ๆ ถึงได้รับการดำเนินการในลักษณะที่มีคำตอบที่ถูกต้องมาก ดูตัวอย่างunix.stackexchange.com/questions/6804/what-does-dd-stand-สำหรับหรือunix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee

2
ตอนนี้มันอยู่นอกคิวรีวิว แต่ยังคงนั่งอย่างน่ากลัวในการโหวต 4 ครั้ง - ถ้ามันได้คะแนนสุดท้ายโปรด ping ฉันที่นี่เพื่อที่ฉันจะได้ลงคะแนนเพื่อเปิดใหม่
Michael Homer

3
@strugee ฉันไม่เห็นด้วย ใช่เราคาดเดาว่าเป็นเพียงความคิดเห็น ... แต่เนื่องจากอาจมีคนที่รู้จริง- หรือจำการอ่าน / การได้ยินบัญชีมือแรก - มันเป็นคำถามที่อาจเป็นไปได้ที่จะตอบ 1970 ไม่นานมานี้
Baard Kopperud

6
UnixสืบทอดมาtrจากMulticsในฐานะที่เป็นอนุพันธ์ของฟังก์ชันในตัวPL / 1 translateซึ่งเป็นลักษณะทั่วไปของTRคำสั่งในสถาปัตยกรรมSystem / 360 (ดูที่IBM System-360 Green Card ) เป็นที่น่าสังเกตว่าการนำQNXไปใช้จริงสามารถอ่านได้จากไฟล์ผ่านทาง-r
don_crissti

คำตอบ:


13

ปรัชญา UNIXสนับสนุนให้ "เล็กเครื่องมือคม" ดังนั้นคำตอบคือว่าการอ่านจากไฟล์จะขัดบวมปรัชญา UNIX ว่าทำไมwc, grep, sed, awkฯลฯ จะอ่านจากไฟล์คำตอบคือว่าพวกเขาทั้งหมดมีคุณสมบัติที่จำเป็นต้องมีการป้อนข้อมูลหรือการป้อนตัวเลือกมากกว่าหนึ่งหรือมิฉะนั้นต้องมีการเข้าถึงโดยตรงไปยังแฟ้ม เนื่องจากtrไม่ได้ถูกใช้โดยทั่วไปด้วยเหตุผลเหล่านี้คุณจึงเหลือหนึ่งในแบบฟอร์มต่อไปนี้เพื่อตอบสนองความต้องการของคุณ

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.