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

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

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

решение1

TheФилософия UNIXвыступает за "маленькие, острые инструменты", поэтому ответ заключается в том, что чтение из файла будет раздуванием, противоречащим философии UNIX. Что касается того, почему wc, grep, sed, awk, и т. д. читают из файлов, ответ заключается в том, что у всех них есть функции, требующие более одного ввода или выбора ввода или иным образом требующие прямого доступа к файлам. Поскольку trобычно не используется по этим причинам, вам остается одна из следующих форм для удовлетворения ваших потребностей;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file

Связанный контент