¿Por qué el comando tr no lee del archivo?

10

Busqué un libro de Unix, el hombre y la página de Wikipedia, trpero no pude encontrar una razón por la cual fue diseñado / implementado de tal manera que no se lea del archivo, sino estrictamente solo de la entrada estándar. Por ejemplo, las herramientas tales como wc, grep, sed, y awktodos serán felices para leer la entrada desde un archivo si se proporciona o de la entrada estándar. ¿Hubo / hay una razón convincente para diseñar de tresta manera?

mkc
fuente
2
No fue codificado de esa manera, y la vida continúa ... Sospecho que debe ser debido a otro momento con máquinas con severas restricciones de memoria, y tr es viejo . Las utilidades de Unix también fueron diseñadas por varias personas, y hay varias inconsistencias y duplicaciones de funcionalidad entre las utilidades.
Rui F Ribeiro
3
solo para señalar: esta pregunta se ha marcado como principalmente basada en opiniones, pero en mi humilde opinión, no debería cerrarse; Hemos tenido preguntas similares a esta sobre por qué las cosas se implementan de cualquier manera que tengan respuestas muy válidas. ver por ejemplo unix.stackexchange.com/questions/6804/what-does-dd-stand-for o unix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee
2
Ahora está fuera de la lista de revisión, pero aún se encuentra peligrosamente en 4 votos cercanos: si obtiene el último, por favor envíeme un mensaje aquí para que pueda votar para reabrir.
Michael Homer
3
@strugee no estoy de acuerdo. Sí, especulamos con certeza que solo somos opiniones ... pero dado que todavía puede haber personas que realmente saben , o recuerdan haber leído / escuchado una cuenta de primera mano, es una pregunta que puede ser posible responder. 1970 no hace tanto tiempo.
Baard Kopperud
66
Unix heredó trde Multics como un derivado de la función incorporada PL / 1 translate , que a su vez era una generalización de un TRcomando en la arquitectura System / 360 (consulte la Tarjeta verde de IBM System-360 ). Vale la pena señalar que la implementación de QNX en realidad podría leer desde un archivo a través de-r
don_crissti

Respuestas:

12

La filosofía de UNIX aboga por "herramientas pequeñas y afiladas", por lo que la respuesta es que leer un archivo sería totalmente contrario a la filosofía de UNIX. En cuanto a por qué wc, grep, sed, awk, etc qué leen de archivos, la respuesta es que todos ellos tienen características que requieren más de una entrada o selección de entrada o se opongan a ello el acceso directo a los archivos. Como trno se usa comúnmente por esas razones, se le deja uno de los siguientes formularios para satisfacer sus necesidades;

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