【发布时间】:2021-03-01 11:25:02
【问题描述】:
我有一个包含以下数据的文件,例如:
20 V 70000003d120f88 1 2
20 V 70000003d120f88 2 2
20x00 V 70000003d120f88 2 2
10020 V 70000003d120f88 1 5
我想得到第 4 列数据的总和。
使用下面的命令,我可以实现这一点,但是 20x00 行被排除在外。我希望以 20 开头的所有内容都必须相加,并且在此之前没有任何内容,例如 20*:
cat testdata.out | awk '{if ($1 == '20') print $4;}' | awk '{s+=$1}END{printf("%.0f\n", s)}'
输出值必须是:
5
如何使用 awk 实现这一点。我尝试的以下方法也不起作用:
cat testdata.out | awk '$1 ~ /'20'/ {print $4;}' | awk '{s+=$1}END{printf("%.0f\n", s)}'
【问题讨论】: