¿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?


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.