Linux bash两个命令中两个数字的总和
我有两个命令,它们都返回数字。 例如:Linux bash两个命令中两个数字的总和,linux,bash,Linux,Bash,我有两个命令,它们都返回数字。 例如: cat `find -name \*.cd -print` | wc -l cat `find -name \*.c -print` | wc -l 假设第一个返回10,另一个返回5 在不更改这些命令的情况下,返回它们总和的命令是什么样子的 我需要这样的东西: cat `find -name \*.cd -print` | wc -l + cat `find -name \*.c -print` | wc -l 在这种情况下,它应该返
cat `find -name \*.cd -print` | wc -l
cat `find -name \*.c -print` | wc -l
假设第一个返回10,另一个返回5
在不更改这些命令的情况下,返回它们总和的命令是什么样子的
我需要这样的东西:
cat `find -name \*.cd -print` | wc -l + cat `find -name \*.c -print` | wc -l
在这种情况下,它应该返回15
我该怎么做?该命令将执行您的两个命令并打印结果的总和
echo $(($(cat `find -name \*.cd -print` | wc -l) + $(cat `find -name \*.c -print` | wc -l)))
编辑:
正如@Karoly Horvath所评论的,如果不是一行,那么它的可读性会更好:
cd_count=$(cat `find -name \*.cd -print` | wc -l)
c_count=$(cat `find -name \*.c -print` | wc -l)
echo $(($cd_count + $c_count))
只需将echo语句替换为您的命令。最好将两种搜索结合起来:
cat $(find -regex '.*\.cd?$') | wc -l
或
或者,如果文件名可以包含空格:
find -regex '.*\.cd?$' -print0 | xargs -0 cat | wc -l
在这种情况下,一行可能是个坏主意。@KarolyHorvath,没错;)我已经编辑了答案。简洁快速+1.如果在正则表达式中添加一个
$
,可能会更好。如果文件名有更多的句点(.)…在这种情况下-最好合并搜索。然而,它没有回答OP的问题——“返回它们的总和,而不更改这些命令”@damgad:我不想重复其他方法。我把这个贴出来作为一种选择。
find -regex '.*\.cd?$' | xargs cat | wc -l
find -regex '.*\.cd?$' -print0 | xargs -0 cat | wc -l