小编aru*_*mar的帖子

“猫的无用之用”的普遍共识是什么?

当我通过管道传输多个 unix 命令(例如 grep、sed、tr 等)时。我倾向于指定正在使用 cat 处理的输入文件。所以像cat file | grep ... | awk ... | sed ....

但是最近在我的答案留下了一些评论表明这是 cat 的无用用法之后,我想我会在这里问这个问题。

我查了一下这个问题,看到了维基百科关于 UUOCThe Useless Use of Cat Award的文章,在我看来,提出的论点是从效率的角度来看的。

我在这里遇到的最接近的问题是这个:打电话给猫是浪费吗?——但这不是我要问的。

我猜 UUOC 阵营建议使用什么,cmd1 args < file | cmd2 args | cmd3 ..或者如果该命令具有从文件读取的选项,然后将文件作为参数传入。

但对我来说cat file | cmd1 ... | cmd2似乎更容易阅读和理解。我不必记住将输入文件发送到不同命令的不同方式,并且该过程逻辑上从左到右流动。首先输入,然后是第一个过程……依此类推。

我是否无法理解关于 cat 的无用使用的争论?我知道如果我正在运行一个每 2 秒运行一次并进行大量处理的 cron 作业,那么在这种情况下 cat 可能会很浪费。但除此之外,使用 cat 的普遍共识是什么?

unix command-line cat pipe

43
推荐指数
5
解决办法
9207
查看次数

标签 统计

cat ×1

command-line ×1

pipe ×1

unix ×1