Pourquoi la commande tr ne lit-elle pas le fichier?

10

J'ai recherché un livre Unix, l'homme et la page wikipedia, trmais je n'ai pas trouvé de raison pour laquelle il a été conçu / implémenté de telle sorte qu'il ne lit pas à partir du fichier mais strictement uniquement à partir de l'entrée standard. Par exemple, des outils tels que wc, grep, sedet awktout se fera un plaisir de lire l' entrée de fichier si fourni ou de l' entrée standard. Était / y avait-il une raison impérieuse de concevoir de trcette façon?

mkc
la source
2
Il n'a pas été codé de cette façon, et la vie continue ... Je soupçonne que cela doit être dû à une autre fois avec des machines avec de graves restrictions de mémoire, et tr est vieux . Les utilitaires Unix ont également été conçus par plusieurs personnes, et il existe plusieurs incohérences et duplication de fonctionnalités entre les utilitaires.
Rui F Ribeiro
3
juste pour souligner: cette question a été signalée comme étant principalement basée sur l'opinion mais à mon humble avis, elle ne devrait pas être fermée; nous avons eu des questions similaires à celle-ci sur pourquoi les choses sont mises en œuvre de quelque manière que ce soit et ont des réponses très valables. voir par exemple unix.stackexchange.com/questions/6804/what-does-dd-stand-for ou unix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee
2
Il est maintenant hors de la file d'attente, mais reste dangereusement assis sur 4 votes serrés - s'il obtient le dernier, veuillez me cingler ici afin que je puisse voter pour rouvrir.
Michael Homer
3
@strugee, je ne suis pas d'accord. Oui, nous spéculant que sont juste opinion ... mais comme il peut y avoir encore des gens qui réellement connaissent - ou me souviens avoir lu / entendre un compte de première main - il est une question , il peut être possible de répondre. 1970 n'est pas si longue.
Baard Kopperud du
6
Unix a hérité trde Multics en tant que dérivé de la fonction intégrée PL / 1 translate , qui à son tour était une généralisation d'une TRcommande dans l' architecture System / 360 (voir IBM Green System-360 Green Card ). Il convient de noter que la mise en œuvre de QNX pourrait réellement lire à partir d'un fichier via-r
don_crissti

Réponses:

12

La philosophie UNIX préconise de "petits outils pointus", donc la réponse est que la lecture d'un fichier serait gonflée contrairement à la philosophie UNIX. Quant à savoir pourquoi wc, grep, sed, awk, etc ne lisent des fichiers, la réponse est que tous ont des caractéristiques qui nécessitent plus de sélection d' une entrée ou d' entrée ou non besoin d'un accès direct aux fichiers. Comme il trn'est pas couramment utilisé pour ces raisons, vous vous retrouvez avec l'un des formulaires suivants pour répondre à vos besoins;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
user1133275
la source