Dlaczego polecenie tr nie odczytuje pliku?

11

Szukałem książki o Uniksie, człowieka i strony wikipedii, trale nie mogłem znaleźć powodu, dla którego został zaprojektowany / zaimplementowany w taki sposób, że nie czyta z pliku, ale tylko ze standardowego wejścia. Na przykład, narzędzia takie jak wc, grep, sed, i awkwszyscy szczęśliwie odczytać dane wejściowe z pliku, jeśli dostarczone lub ze standardowego wejścia. Czy / Czy istnieje ważny powód, aby projektować w trten sposób?

mkc
źródło
2
Nie zostało to w ten sposób zakodowane, a życie toczy się dalej… Podejrzewam, że musi to być kolejny raz z maszynami z poważnymi ograniczeniami pamięci, a tr jest stary . Narzędzia uniksowe również zostały zaprojektowane przez kilka osób, a ponadto istnieje kilka niespójności i powielanie funkcjonalności w różnych narzędziach.
Rui F Ribeiro
3
tylko dla przypomnienia: to pytanie zostało oznaczone jako oparte głównie na opiniach, ale IMHO nie powinno być zamknięte; mieliśmy podobne pytania na temat tego, dlaczego rzeczy są wdrażane w jakikolwiek sposób i mają bardzo ważne odpowiedzi. patrz na przykład unix.stackexchange.com/questions/6804/what-does-dd-stand-for lub unix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee
2
Teraz nie ma go w kolejce recenzji, ale nadal siedzi niebezpiecznie przy 4 bliskich głosach - jeśli dostanie ostatni, proszę pinguj mnie tutaj, abym mógł zagłosować, aby ponownie otworzyć.
Michael Homer
3
@strugee Nie zgadzam się. Tak, spekulujemy, że to tylko opinia ... ale ponieważ wciąż mogą być ludzie, którzy faktycznie wiedzą - lub pamiętają czytanie / słuchanie konta z pierwszej ręki - jest to pytanie, na które można odpowiedzieć. 1970 nie jest tak dawno temu.
Baard Kopperud
6
Unix odziedziczony trpo Multics jako pochodna wbudowanej funkcji PL / 1 translate , która z kolei była uogólnieniem TRpolecenia w architekturze System / 360 (patrz Zielona karta IBM System-360 ). Warto zauważyć, że implementacja QNX mogłaby faktycznie odczytać z pliku przez-r
don_crissti

Odpowiedzi:

13

Na UNIX filozofia opowiada się za „małych, ostrych narzędzi”, a więc odpowiedź brzmi, że czytanie z pliku uwędzić byłoby sprzeczne z filozofią UNIX. Dlaczego wc, grep, sed, awk, itd czytać z plików, odpowiedź brzmi, że wszystkie one mają cechy, które wymagają więcej niż jedno wejście lub wybór wejścia lub w inny sposób wymaga bezpośredniego dostępu do plików. Ponieważ trnie jest to powszechnie używane z tych powodów, masz jeden z poniższych formularzy w celu zaspokojenia swoich potrzeb;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
użytkownik1133275
źródło