Busqué un libro de Unix, el manual y la página de Wikipedia, tr
pero no pude encontrar una razón por la cual fue diseñado/implementado de tal manera que no lee desde un archivo sino estrictamente solo desde la entrada estándar. Por ejemplo, herramientas como wc
, grep
, sed
y awk
todas leerán felizmente la entrada del archivo si se proporciona o de la entrada estándar. ¿Hubo/hay una razón convincente para diseñar tr
de esta manera?
Respuesta1
ElFilosofía UNIXaboga por "herramientas pequeñas y afiladas", por lo que la respuesta es que leer un archivo sería muy contrario a la filosofía UNIX. En cuanto a por qué wc
, grep
, sed
, awk
, etc. leen archivos, la respuesta es que todos tienen características que requieren más de una entrada o selección de entrada o requieren acceso directo a los archivos. Como tr
no se usa comúnmente por esos motivos, le queda uno de los siguientes formularios para satisfacer sus necesidades;
tr ... < file
tr ... < file > file2
tr ... < file | sponge file