计算并总结特定的十进制数(bash,awk,perl)

use*_*287 1 bash perl awk

我有一个制表符分隔文件,我想在每次找到第一列的数字而不是第一列的字符时,将某个十进制数总和到输出(1.5),并打印出从第一列到最后一行的所有行的结果.

我有一个看起来像这样的示例文件:

它有8行

  1st-column 2nd-Column

  a             ship
  1             name     
  b            school
  c             book
  2             blah
  e             blah
  3             ...
  9             ...
Run Code Online (Sandbox Code Playgroud)

现在我希望我的脚本逐行读取,如果它找到数字总和1.5,并给我输出第一列,如下所示:

  0
  1.5
  1.5
  1.5
  3
  3
  4.5
  6
Run Code Online (Sandbox Code Playgroud)

我的脚本是:

  #!/bin/bash
  for c in {1..8}
  do
  awk 'NR==$c { if (/^[0-9]/) sum+=1.5} END {print sum }' file
  done
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何输出!

感谢您的帮助.

jay*_*ngh 5

预期输出中的最后一项似乎不正确.如果是,那么你可以这样做:

$ awk '$1~/^[[:digit:]]+$/{sum+=1.5}{print sum+0}' file
0
1.5
1.5
1.5
3
3
4.5
6
Run Code Online (Sandbox Code Playgroud)

  • +1做得非常好.很高兴看到你解释得对. (2认同)