Unix Bash…对csv文件中的每一行进行求和,从第二个条目开始,然后从行和中查找最大的数字
我已经创建了一个一行程序,从第二个条目开始,它将汇总csv文件中的每一行但是我想从行的总和中找到最大的数字 文件输出示例:有数千行Unix Bash…对csv文件中的每一行进行求和,从第二个条目开始,然后从行和中查找最大的数字,bash,Bash,我已经创建了一个一行程序,从第二个条目开始,它将汇总csv文件中的每一行但是我想从行的总和中找到最大的数字 文件输出示例:有数千行 03/Mar/2016:00:14,19772,7494,11293,9467 03/Mar/2016:00:15,18041,13241,9715,8968 03/Mar/2016:00:16,17441,13534,9926,9301 03/Mar/2016:00:17,17709,14243,9022,9209 03/Mar/2016:00:18,16368,
03/Mar/2016:00:14,19772,7494,11293,9467
03/Mar/2016:00:15,18041,13241,9715,8968
03/Mar/2016:00:16,17441,13534,9926,9301
03/Mar/2016:00:17,17709,14243,9022,9209
03/Mar/2016:00:18,16368,13535,8761,8313
03/Mar/2016:00:19,17074,13224,8868,7789
03/Mar/2016:00:20,16783,13666,9499,8763
03/Mar/2016:00:21,16665,12962,8821,8862
示例脚本:
这是我通过计算每一行而实现的,但只需要从计算的行中找到最大的数字。有什么想法吗
awk 'BEGIN {FS=OFS=","} {sum=0; for(i=2;i<=NF;i++) {sum+=$i}; print $0,"sum:"sum,}' /tmp/101.20160304.csv
awk'BEGIN{FS=OFS=“,”}{sum=0;对于(i=2;i您可以通过管道将awk输出传输到:
awk_output|sort -t':' -nrk4|head -1
这将按总和降序排序,然后选择第一行。当然,您可以重新写入awk,一次完成此操作。您可以将awk输出传送到:
awk_output|sort -t':' -nrk4|head -1
这会按总和降序排序,然后选择第一行。当然,您可以重新写入awk,一次完成此操作。awk非常能够记住最大值
awk -F, '
# for every row, calculate the sum
{sum = 0; for (i=2; i<=NF; i++) sum += $i}
# set the max value (if the first row, initialize the max value)
NR == 1 || sum > max {max = sum}
END {print max}
' file
awk能够记住最大值
awk -F, '
# for every row, calculate the sum
{sum = 0; for (i=2; i<=NF; i++) sum += $i}
# set the max value (if the first row, initialize the max value)
NR == 1 || sum > max {max = sum}
END {print max}
' file
谢谢你它起了作用谢谢你它起了作用…谢谢你它起了作用…谢谢你它起了作用(i=2;i如何?我不是初始化为零,而是初始化为第一行实际数据。如何?我不是初始化为零,而是初始化为第一行实际数据。