为什么不从文件读取tr命令?


11

我查找了Unix书籍,手册和Wikipedia页面,tr但找不到设计/实现它的原因,即它不是从文件中读取,而只能从标准输入中读取。例如,工具,例如wcgrepsed,和awk所有将愉快地从文件,如果提供读取输入或从标准输入。是否/有充分理由进行tr这种设计?


2
它不是用这种方式编码的,而且生活还在继续……我怀疑这一定是由于另一次使用具有严格内存限制的机器而造成的,并且tr很。Unix实用程序也是由几个人设计的,并且在各个实用程序之间存在一些不一致和重复的功能。
Rui F Ribeiro

3
只是指出:这个问题已经被标记为主要基于观点的,但是恕我直言,它不应该被关闭;我们有这样的疑问,为什么要以有效的答案以任何方式实施事物。参见例如unix.stackexchange.com/questions/6804/what-does-dd-stand-forunix.stackexchange.com/questions/93773/why-is-sort-o-useful
strugee

2
现在它已不在审核队列中,但仍然危险地以4个接近的票数坐下-如果确实获得最后一票,请在这里ping我,以便我投票重新开始。
迈克尔·荷马,

3
@strugee我不同意。是的,我们推测肯定只是意见而已...但是由于那里仍然有一些人真正知道 -或记得阅读/听到过第一手资料-这一个可能回答的问题。1970年不是很久以前。
巴德·科珀罗德

6
UnixtrMultics继承而来,是PL / 1 translate内置函数的派生,而后者又是System / 360体系结构中TR命令的一般化(请参阅IBM System-360 Green Card)。值得注意的是,QNX实现实际上可以通过以下方式从文件中读取-r
don_crissti

Answers:


13

UNIX哲学倡导的“小,锋利的工具”,所以答案是,从文件中读取会膨胀违背了UNIX哲学。至于为什么wcgrepsedawk,等从文件中读取吗,答案是他们都需要一个以上的输入或输入选择或以其他方式需要对文件的直接访问功能。由于tr这些原因,通常不使用它,因此您需要满足以下需求之一的表格;

tr ... < file
tr ... < file > file2
tr ... < file | sponge file
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.