У меня есть набор файлов, каждый из которых содержит одно (целое) число, которое является количеством файлов в каталоге с тем же именем (без суффикса .txt) - результат wc
для каждого изкаталоги.
Я хотел бы суммировать числа в файлах.Я пытался:
i=0;
find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read j; do i=$i+`cat $j.txt`; done
echo $i
Но ответ 0. Если я просто echo
вывод cat
:
i=0; find -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read j; do echo `cat $j.txt`; done
Значения есть:
1313
1528
13465
22258
7262
6162
...
Предположительно, мне нужно как-то разыграть вывод cat
?
[EDIT]
В конце концов я нашел собственное решение:
i=0;
for j in `find -mindepth 1 -maxdepth 1 -type d -printf '%f\n'`; do
expr $((i+=$(cat $j.txt)));
done;
28000
30250
...
...
647185
649607
но принятый ответ точнее, так как он не выводится по пути