Linux cut命令来分隔输出并添加它们

Linux cut命令来分隔输出并添加它们,linux,bash,Linux,Bash,我是bash的新手 我编写了一个bash脚本,它给了我如下输出: 3387 /test/file1 23688 /test/file2 5813 /test/file3 10415 /test/file4 1304 /test/file5 46 /test/file6 8 /test/file7 138 /test/file8 我可以用 wc -l /path/to/$dir/test | cut -d" " -f1 我如何将数字相加并计算它们? 我可以做: output=`wc -l /

我是bash的新手 我编写了一个bash脚本,它给了我如下输出:

3387 /test/file1
23688 /test/file2
5813 /test/file3
10415 /test/file4
1304 /test/file5
46 /test/file6
8 /test/file7
138 /test/file8
我可以用

 wc -l /path/to/$dir/test | cut -d" " -f1
我如何将数字相加并计算它们? 我可以做:

output=`wc -l /path/to/$dir/test | cut -d" " -f1`
是否可以使用“while”或“for”循环并添加这些数字? 怎么做


提前感谢您

您希望
awk
在此避免显式循环。如果您的输出在文件
data.txt
中,您可以使用:

$ awk '{sum += $1} END {print sum}' data.txt
44799
在您的情况下,通过管道将脚本输出到
awk

$ your_script.sh | awk '{sum += $1} END {print sum}'
由于您在问题中给出的输出是
wc-l
的输出,请尝试:

$ wc -l /path/to/$dir/test | awk '{sum += $1} END {print sum}'

(除了登录此页面的其他人:
wc-l
,当给定通配符时,也会给出总数,但在这种情况下使用
awk
非常好,因为您可以直接处理总行数,并将其传递到另一个进程。)

我不想读取文本文件。我想根据终端中显示的输出进行计算。如果您能告诉我如何解决问题,谢谢。补充到答案中。