History

為什麼 tr 命令不從文件中讀取?

  • November 1, 2016

我查了一本 Unix 書籍、man 和 wikipedia 頁面,tr但找不到為什麼它的設計/實現方式不是從文件讀取,而是嚴格地只從標準輸入讀取的原因。例如,工具如wc, grep, sed, 和awk所有工具都將愉快地從文件中讀取輸入(如果提供)或從標準輸入中讀取。是否/是否有令人信服的理由來設計tr這種方式?

UNIX 哲學提倡“小而鋒利的工具”,所以答案是從文件中讀取會膨脹,這與 UNIX 哲學相反。至於為什麼wc, grep, sed, awk, 等確實從文件中讀取,答案是它們都具有需要多個輸入或輸入選擇或需要直接訪問文件的功能。由於tr這些原因不常用,您可以使用以下表格之一來滿足您的需求;

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

引用自:https://unix.stackexchange.com/questions/318948