![为什么 xargs 与 echo 一起使用,而不与 sort 一起使用?](https://linux22.com/image/190541/%E4%B8%BA%E4%BB%80%E4%B9%88%20xargs%20%E4%B8%8E%20echo%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%8C%E8%80%8C%E4%B8%8D%E4%B8%8E%20sort%20%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
在 xargs 手册页有一个用法示例
cut -d: -f1 < /etc/passwd | sort | xargs echo
为什么在这种情况下 echo 与 xargs 一起使用,而 sort 不与 xargs 一起使用,
即使两个命令都有相似的语法,其中参数跟随命令?
答案1
|
将左侧的输出与右侧的输入连接起来。
echo
打印它的参数。它不会对发送到其输入的数据执行任何操作。因此,xargs
是用来调用echo
带输入的。
sort
另一方面,不会对其参数进行排序,而是对其输入数据进行排序。
因此,直接将输入进行排序是有意义的。
(然而,xargs echo
真的没有意义。这实际上只是将 的输出转换sort
为参数,只是将它们转换回输出。不太确定这里的意图是什么:cut -d: -f1 < /etc/passwd | sort
会起到同样的作用;好吧,它之后会有一个换行符每个用户,但老实说,这不是 xargs 的工作,而是sed
or的工作awk
,它会直接在 /etc/passwd 上完成用户想要的事情,但是,我很漂亮;当然您对该命令行的敏感性不是很感兴趣,更多的是为什么 xargs 以这种方式使用。)