Как рассчитать сумму выходных значений терминала в Linux

Именованные каналы спешат на помощь!

xyz() {
  pipe="/tmp/$$pipe"
  mkfifo "$pipe"
  tee "$pipe" | "$@" | paste "$pipe" -
  rm "$pipe"
}

Результаты вашего примера команды:

$ (echo "foo"; echo "bar") | xyz rev
foo oof
bar rab

Приведенная выше функция делает именно то, что вы описываете.

0
19.11.2020, 12:35
1 ответ

Одним из возможных решений может быть настройка вывода vgsдля печати результата в байтах без заголовка и суффикса единицы, а затем вы можете использовать bcдля вычисления суммы:

$ sudo vgs -o size --unit=b --no-suffix --no-headings
  10737418240
  20396900352
   1069547520

$ sudo vgs -o size --unit=b --no-suffix --no-headings | paste -s -d+ - | bc
32203866112
3
18.03.2021, 22:48

Теги

Похожие вопросы