Чому команда tr не читається з файлу?


11

Я переглянув книгу Unix, людину та сторінку вікіпедії, trале не зміг знайти причину, чому вона була розроблена / реалізована таким чином, що вона не читається з файлу, а строго лише зі стандартного вводу. Наприклад, такі інструменти, як wc, grep, sed, і awkвсі будуть щасливі зчитують дані з файлу , якщо це передбачено або зі стандартного вводу. Був / Чи є вагомий привід створити trтакий спосіб?


2
Це не було закодовано таким чином, і життя продовжується ... Я підозрюю, що це повинно бути в інший раз із машинами з суворими обмеженнями пам'яті, і тр є старим . Утиліти Unix також були розроблені декількома людьми, і також є кілька невідповідностей та дублювання функціональних можливостей у всіх утилітах.
Rui F Ribeiro

3
просто зазначу: це питання було позначене як головне на основі думки, але IMHO його не слід закривати; у нас були подібні до цього питання щодо того, чому все реалізується будь-яким способом, на які є дуже вагомі відповіді. див., наприклад, unix.stackexchange.com/questions/6804/what-does-dd-stand-for або unix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee

2
Зараз це вже не в черзі на огляд, але все ще сильно тримається на 4 закритих голосах - якщо він отримає останній, будь ласка, напишіть мені тут, щоб я міг проголосувати за повторне відкриття.
Майкл Гомер

3
@strugee Я не згоден. Так, ми спекулювати впевнені, просто думка ... але так як там ще можуть бути люди, які там на самому ділі знають - чи пам'ятають читання / слухання рахунки з перших рук - це є питання може бути можливо відповісти. 1970 рік не так давно.
Бард Копперуд

6
Unix успадкував trвід Multics як похідну вбудованої функції PL / 1 translate , що, в свою чергу, було узагальненням TRкоманди в архітектурі System / 360 (див. Зелену карту IBM System-360 ). Варто зазначити, що реалізація QNX насправді може читатися з файлу через-r
don_crissti

Відповіді:


13

У філософії UNIX виступає за «маленькі, гострі інструменти», тому відповідь , що читання з файлу буде роздуватися всупереч філософії UNIX. Як , чому wc, grep, sed, awkі т.д. читають з файлів, відповідь в тому , що всі вони мають особливості , які вимагають більше одного вхід або вибір входу чи інакше вимагає прямого доступу до файлів. Оскільки trз цих причин зазвичай не використовується, вам залишається одна з наступних форм для задоволення ваших потреб;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.