Bash:如何将一个命令的每个结果传递到另一个命令

Bash:如何将一个命令的每个结果传递到另一个命令,bash,pipe,Bash,Pipe,我想从以下命令返回的所有文件中获取行数的总数: shell> find . -name *.info 所有.info文件都嵌套在子目录中,因此我不能简单地执行以下操作: shell> wc -l *.info 我确信这应该出现在任何bash用户剧目中,但我被卡住了 谢谢您可以像这样使用xargs: 您可以像这样使用XARG: 一些谷歌搜索出现了 find /topleveldirectory/ -type f -exec wc -l {} \; | awk '{total +=

我想从以下命令返回的所有文件中获取行数的总数:

shell> find . -name *.info
所有.info文件都嵌套在子目录中,因此我不能简单地执行以下操作:

shell> wc -l *.info
我确信这应该出现在任何bash用户剧目中,但我被卡住了

谢谢

您可以像这样使用xargs:

您可以像这样使用XARG:


一些谷歌搜索出现了

find /topleveldirectory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'

这似乎起到了作用

一些谷歌搜索出现了

find /topleveldirectory/ -type f -exec wc -l {} \; | awk '{total += $1} END{print total}'
wc -l `find . -name *.info`
这似乎起了作用

wc -l `find . -name *.info`
如果你只是想要总数,使用

wc -l `find . -name *.info` | tail -1
编辑:到xargs的管道也可以工作,希望可以避免“命令行太长”

find . -name *.info | xargs wc -l
如果你只是想要总数,使用

wc -l `find . -name *.info` | tail -1
编辑:到xargs的管道也可以工作,希望可以避免“命令行太长”

find . -name *.info | xargs wc -l
自我阅读问题的注意事项

find . -name "*.info" -exec cat {} \; | wc -l
自我阅读问题的注意事项

find . -name "*.info" -exec cat {} \; | wc -l

啊,当然了。将您标记为最简单/优雅的解决方案希望您没有太多的文件。还要小心可怕的命令行long@Adrian当前位置是的-我没有考虑过这一点,因此可能不是正确的答案。虽然对我来说很有用:2500个文件啊,当然了。将您标记为最简单/优雅的解决方案希望您没有太多的文件。还要小心可怕的命令行long@Adrian当前位置是的-我没有考虑过这一点,因此可能不是正确的答案。虽然适用于我:2500个文件,但别忘了引用shell元字符,否则您可能想知道为什么find:find会出现奇怪的结果或错误-名称'*.info'-print0 | xargs-0 cat | wc-lDon不要忘记引用您的shell元字符,否则您可能想知道为什么会从find:find中得到奇怪的结果或错误-名称'*.info'-print0 | xargs-0 cat | wc-l