基于行中操作码(指令)的 ADD 或 SUB 编号

slo*_*ion 0 scripting awk text-processing

我怎样才能编写一个awk可以根据输入文件中的行所要求的内容进行加法或减法的脚本?\xc2\xa0\n我\xc2\xa0弄清楚如何仅进行加法或减法,\n但不是非此即彼在一个脚本中。

\n

例如,我想要这个输入:

\n
ADD 5,10,20\nSUB 30,5,20\n
Run Code Online (Sandbox Code Playgroud)\n

产生这个输出:

\n
35\n-55\n
Run Code Online (Sandbox Code Playgroud)\n

这是我到目前为止所写的:

\n
#!/bin/awk \nBEGIN {\n    FS=","\n}\n\n{\n    for(i=1;i<=NF;i++) \n        sum+=$i; \n    print sum; sum=0}\n
Run Code Online (Sandbox Code Playgroud)\n

但是,显然,它只进行加法,甚至没有获得所有数字。

\n

gle*_*man 5

一些技巧:

  • 使用空格或逗号作为字段分隔符:FS = "[ ,]"
  • 然后像你一样将数字相加,除了以i = 2
  • 如果第一个字段是SUB,则将总和乘以 -1