Linux bash来自两个命令的两个数字的总和

时间:2015-11-06 14:06:01

标签: 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

在这种情况下它应该返回15。

我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

将两个搜索结合起来更好:

find -regex '.*\.cd?$' | xargs cat | wc -l

find -regex '.*\.cd?$' -print0 | xargs -0 cat | wc -l

或者,如果文件名可以包含空格:

var selectedImage;

function select(image) {
  var images = document.querySelectorAll('img');
  var index = 0, length = images.length;

  for (; index < length; index++) {
    images[index].classList.remove('selected');
  }

  selectedImage = image.id;
  image.classList.add('selected');

  var image = document.getElementById(selectedImage);
  var audioId = image.getAttribute('data-audio')
  var audioElement = document.getElementById(audioId);
}

答案 1 :(得分:1)

该命令将执行你的两个命令并打印结果的总和。

echo $(($(cat `find -name \*.cd -print` | wc -l)  + $(cat `find -name \*.c -print` | wc -l)))

编辑: 正如@Karoly Horvath评论的那样,如果它不是一个oneliner会更具可读性:

cd_count=$(cat `find -name \*.cd -print` | wc -l)
c_count=$(cat `find -name \*.c -print` | wc -l)
echo $(($cd_count + $c_count))

答案 2 :(得分:0)

$ expr $(echo 5) + $(echo 10)
15

只需用你的命令替换echo语句。