ls -l | tr -s " " | cut -d " " -f5
我尝试了上面的代码并获得了以下输出。
158416 757249 574994 144436 520739 210444 398630 1219080 256965 684782 393445 157957 273642 178980 339245
如何添加这些数字。我被困在这里。请不要使用awk,perl,shell脚本等。
答案 0 :(得分:1)
使用du
最简单。像这样的东西:
du -h -a -c | tail -n1
将给您总计。您还可以使用-d
参数指定遍历的深度,例如:
du -d 1 -h -a -c | tail -n1
您将必须澄清“不使用Shell脚本”的含义,以便任何人都能得出更有意义的答案。
答案 1 :(得分:0)
您可以尝试这种方式,但是$((...))是shell脚本
eval echo $(( $(ls -l | tr -s ' ' | cut -d ' ' -f5 | tr '\n' '+') 0 ))
答案 2 :(得分:0)
Don't parse the output of ls
。它不用于解析。与Martin Gergov's answer一起使用du
。或du
and find
或just du
。
但是,如果只加数字是唯一的重点(即使输入不可靠),那么这是最懒的方法(首先安装num-utils):
ls -l | tr -s " " | cut -d " " -f5 | numsum
还有其他方法,另请参见:How can I quickly sum all numbers in a file?