Warum liest der Befehl tr nicht aus einer Datei?

10

Ich habe ein Unix-Buch, den Mann und die Wikipedia-Seite nachgeschlagen tr, konnte aber keinen Grund finden, warum es so entworfen / implementiert wurde, dass es nicht aus einer Datei liest, sondern ausschließlich aus der Standardeingabe. Zum Beispiel Werkzeuge wie wc, grep, sedund awkalle Eingaben aus einer Datei glücklich , wenn gelesen wird oder von der Standardeingabe. Gab / gibt es einen zwingenden Grund, so zu gestalten tr?

mkc
quelle
2
Es wurde nicht so codiert, und das Leben geht weiter ... Ich vermute, es muss ein anderes Mal mit Maschinen mit schwerwiegenden Speicherbeschränkungen sein, und tr ist alt . Unix-Dienstprogramme wurden auch von mehreren Personen entwickelt, und es gibt verschiedene Inkonsistenzen und doppelte Funktionen zwischen den Dienstprogrammen.
Rui F Ribeiro
3
Nur um darauf hinzuweisen: Diese Frage wurde als primär meinungsbasiert gekennzeichnet, sollte aber meiner Meinung nach nicht geschlossen werden. Wir hatten ähnliche Fragen dazu, warum Dinge auf irgendeine Weise implementiert werden, die sehr gültige Antworten haben. siehe zum Beispiel unix.stackexchange.com/questions/6804/what-does-dd-stand-for oder unix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee
2
Es befindet sich jetzt außerhalb der Überprüfungswarteschlange, sitzt aber immer noch gefährlich bei 4 engen Abstimmungen. Wenn es die letzte erhält, pingen Sie mich bitte hier an, damit ich abstimmen kann, um es wieder zu öffnen.
Michael Homer
3
@strugee Ich bin anderer Meinung. Ja, wir spekulieren sicher, dass es nur eine Meinung ist ... aber da es immer noch Leute gibt, die tatsächlich wissen - oder sich daran erinnern, einen Bericht aus erster Hand gelesen / gehört zu haben -, ist es eine Frage, die möglicherweise beantwortet werden kann. 1970 ist noch nicht so lange her.
Baard Kopperud
6
Unix wurdetr von Multics als Ableitung der in PL / 1 translate integrierten Funktion geerbt , was wiederum eine Verallgemeinerung eines TRBefehls in der System / 360- Architektur war (siehe IBM System-360 Green Card ). Es ist erwähnenswert, dass die QNX- Implementierung tatsächlich aus einer Datei über-r
don_crissti

Antworten:

12

Die UNIX-Philosophie befürwortet "kleine, scharfe Werkzeuge", daher lautet die Antwort, dass das Lesen aus einer Datei entgegen der UNIX-Philosophie aufgebläht wäre. Wie, warum wc, grep, sed, awk, usw. von Dateien lesen Sie, die Antwort ist, dass sie alle Funktionen, die mehr erfordern als ein Eingang oder Eingangswahl oder anderweitig benötigt direkten Zugriff auf die Dateien. Da dies traus diesen Gründen nicht häufig verwendet wird, bleibt Ihnen eines der folgenden Formulare, um Ihre Anforderungen zu erfüllen.

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