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