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


11

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


2
Это не было закодировано таким образом, и жизнь продолжается ... Я подозреваю, что это должно быть из-за того, что это был другой раз с машинами с жесткими ограничениями памяти, а tr стар . Утилиты Unix также были разработаны несколькими людьми, и есть несколько несоответствий и дублирование функциональности между утилитами.
Руи Ф Рибейро

3
просто чтобы указать: этот вопрос был помечен как прежде всего основанный на мнении, но ИМХО, его не следует закрывать; у нас были подобные вопросы о том, почему вещи реализованы любым способом, которые имеют очень правильные ответы. см., например, unix.stackexchange.com/questions/6804/what-does-dd-stand-for или unix.stackexchange.com/questions/93773/why-is-sort-o-useful
стружка

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

3
@ Strugee Я не согласен. Да, мы спекулировать уверены, просто мнение ... но так как там еще могут быть люди, которые там на самом деле знают - или помнят чтение / слушание счета из первых рук - это есть вопрос может быть возможно ответить. 1970 не так давно.
Баард Копперуд

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.