[英]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.