我查阅了一本 Unix 书籍、手册和维基百科页面,tr
但找不到它的设计/实现方式的原因,即它不从文件读取,而严格只从标准输入读取。例如,诸如wc
、grep
、sed
和awk
all 之类的工具将很乐意从文件(如果提供)或标准输入中读取输入。是否有令人信服的理由以tr
这种方式进行设计?
答案1
这UNIX哲学提倡“小而锋利的工具”,因此答案是从文件中读取数据会变得臃肿,这与 UNIX 哲学背道而驰。至于为什么wc
、grep
、sed
、awk
等确实从文件中读取,答案是它们都具有需要多个输入或输入选择或以其他方式需要直接访问文件的功能。由于tr
这些原因并不常用,您可以使用以下表格之一来满足您的需求;
tr ... < file
tr ... < file > file2
tr ... < file | sponge file