我有一个制表符分隔文件,我想在每次找到第一列的数字而不是第一列的字符时,将某个十进制数总和到输出(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)
但我没有得到任何输出!
感谢您的帮助.
预期输出中的最后一项似乎不正确.如果是,那么你可以这样做:
$ 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)