繁体   English   中英

如何在UNIX中的awk命令中计算总和?

[英]How to calculate sum inside awk command in unix?

我的newProcessFile.txt看起来像这样

total 16
-rw-rw-r--    1 jaind    staff             0 Jul 14 08:54 cdim_landing_addl_addr.out
-rw-rw-r--    1 jaind    staff             0 Jul 17 06:13 cdim_merge_alert_log.out
-rw-rw-r--    1 jaind    staff             0 Jul 11 09:02 merge_log.out
-rw-rw-r--    1 jaind    staff             0 Nov 06 07:12 newProcessFile.txt
-rw-------    1 jaind    staff           969 Aug 13 02:22 nohup.out
-rw-r-----    1 jaind    staff           474 Apr 28 2014  profile_old
drwxr-x---    2 jaind    staff           256 Nov 06 04:45 test_Chiranjib

每当我尝试计算第7列的总和时,它将输出显示为0。

awk 'BEGIN{ FS = ","; sum = 0; count = 0 } {if(NR >= 2){sum = sum + $7; count ++; print $1,$2,$5,sum}}' newProcessFile.txt

未计算总和。 我想念什么?

您需要从awk命令中删除字段分隔符,因为您没有使用“,”分隔字段。

awk 'NR >= 2{sum += $7; print $1,$2,$5,sum}' newProcessFile.txt

我已经删除了计数器变量,也没有在任何地方使用它。

假设您正在执行当前目录的目录列表,那么您实际上不应该解析ls的输出。 这里有两种选择:

stat -c "%s" * | awk '{sum+=$1} END {print sum}'
perl -E '-f $_ and $sum += -s _ for glob("*"); say $sum'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM