【问题标题】:awk add numbers in rowawk 在行中添加数字
【发布时间】:2020-04-30 21:28:03
【问题描述】:

我正试图围绕 AWK 命令。
从我读过的内容可以看出,它将文本文件中的数据视为列 但我需要将特定行而不是列中的所有值相加。

例如我想将所有值添加到 Scorpion 的右侧以获得 150

的值
awk   'BEGIN {FS=","} {NR=2 ;  calc1=$2+$3+£4+$5; print calc1 }' timetable.txt
timetable.txt

Sub zero,    40,  40,  40, 20

Scorpion,    20,  40   60, 30

Raiden,      15,  10,  10, 15

【问题讨论】:

  • 注意命令中间的£4。还要注意Print 中的大写P。可能有几个问题需要您清理......另外,为NR 分配一个值是没有意义的,请参阅awk 手册页了解NR 的含义。最后 - 对于任何 shell,您都不能在单引号分隔的脚本中使用单引号。
  • 正如“Scorpion”第 3 列中 40 后面缺少的字段分隔符 ...

标签: awk


【解决方案1】:

请您尝试关注一下。

awk 'BEGIN{FS=","} $1=="Scorpion"{for(i=2;i<=NF;i++){sum+=$i}} END{print "Sum="sum+0}' Input_file

【讨论】:

  • 谢谢我试一试。也只是想了解一下。我们在哪里指定行?蝎子在第二排。以及如何在伪代码中。
  • @Confuseis,代码正在寻找字符串Scorpion,而不是此处的特定行,如果任何行有该字符串,它将收集总和,如果有任何疑问,请告诉我?
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 2020-07-11
  • 1970-01-01
  • 2020-09-01
  • 2014-04-25
  • 2014-04-04
  • 1970-01-01
  • 2013-04-19
相关资源
最近更新 更多