Mengapa perintah tr tidak membaca dari file?


11

Saya mencari buku Unix, orang itu dan halaman wikipedia untuk trtetapi tidak dapat menemukan alasan mengapa ia dirancang / diimplementasikan sedemikian rupa sehingga tidak membaca dari file tetapi hanya dari input standar. Misalnya, alat seperti wc, grep, sed, dan awksemua akan senang hati membaca masukan dari file jika disediakan atau dari input standar. Apakah / Apakah ada alasan kuat untuk mendesain trdengan cara ini?


2
Itu tidak dikodekan seperti itu, dan hidup terus berjalan ... Saya menduga itu pasti karena lain kali dengan mesin dengan batasan memori yang parah, dan tr sudah tua . Utilitas Unix juga dirancang oleh beberapa orang, dan ada beberapa ketidakkonsistenan dan duplikasi fungsi di seluruh utilitas.
Rui F Ribeiro

3
hanya untuk menunjukkan: pertanyaan ini telah ditandai terutama berdasarkan opini tetapi IMHO tidak boleh ditutup; kami memiliki pertanyaan serupa dengan ini tentang mengapa hal-hal diterapkan dengan cara apa pun yang memiliki jawaban yang sangat valid. lihat misalnya unix.stackexchange.com/questions/6804/what-does-dd-stand-for atau unix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee

2
Sekarang sudah keluar dari antrian ulasan, tetapi masih duduk dengan susah payah di 4 suara dekat - jika tidak mendapatkan yang terakhir, tolong ping saya di sini sehingga saya dapat memilih untuk membuka kembali.
Michael Homer

3
@ Strugee, saya tidak setuju. Ya, kami berspekulasi pasti hanya pendapat ... tetapi karena mungkin masih ada orang di luar sana yang benar-benar tahu - atau ingat membaca / mendengar akun langsung - ini adalah pertanyaan yang mungkin dapat dijawab. 1970 belum terlalu lama.
Baard Kopperud

6
Unix diwarisi trdari Multics sebagai turunan dari fungsi bawaan PL / 1 translate , yang pada gilirannya merupakan generalisasi dari TRperintah dalam arsitektur System / 360 (lihat IBM System-360 Green Card ). Perlu dicatat bahwa implementasi QNX sebenarnya bisa membaca dari file melalui-r
don_crissti

Jawaban:


13

The UNIX filsafat pendukung untuk "kecil, alat tajam", sehingga jawabannya adalah bahwa membaca dari sebuah file akan bertentangan mengasapi dengan filosofi UNIX. Mengapa wc, grep, sed, awk, dll jangan membaca dari file, jawabannya adalah bahwa mereka semua memiliki fitur yang membutuhkan lebih dari satu input atau seleksi masukan atau memerlukan akses langsung ke file. Seperti tryang tidak umum digunakan karena alasan-alasan itu Anda dibiarkan dengan salah satu formulir berikut untuk memenuhi kebutuhan Anda;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.