為什麼 tr 指令不從檔案讀取?

為什麼 tr 指令不從檔案讀取?

我查閱了一本 Unix 書籍、手冊和維基百科頁面,tr但找不到它的設計/實現方式的原因,即它不從文件讀取,而嚴格只從標準輸入讀取。例如,諸如wcgrepsedawkall 之類的工具將很樂意從文件(如果提供)或標準輸入中讀取輸入。是否有令人信服的理由以tr這種方式進行設計?

答案1

UNIX哲學提倡“小而鋒利的工具”,因此答案是從文件中讀取數據會變得臃腫,這與 UNIX 哲學背道而馳。至於為什麼wcgrepsedawk等確實從文件中讀取,答案是它們都具有需要多個輸入或輸入選擇或以其他方式需要直接存取文件的功能。由於tr這些原因並不常用,您可以使用以下表格之一來滿足您的需求;

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

相關內容