bash:检查特定单词的总和是否小于给定的数字

bash:检查特定单词的总和是否小于给定的数字,bash,shell,Bash,Shell,我有300个文件,包括以下格式: 0 0 261157 0 13267 0 314 0 274738 736485 999.999756 1 0 261155 0 13269 0 314 0 274738 736625 1000.147705 2 0 261162 0 13264 0

我有300个文件,包括以下格式:

0       0       261157  0       13267   0       314     0       274738  736485  999.999756  
1       0       261155  0       13269   0       314     0       274738  736625  1000.147705  
2       0       261162  0       13264   0       312     0       274738  736703  1000.104370  
3       0       261156  0       13265   0       312     0       274733  736838  1000.113708  
4       0       261166  0       13261   0       311     0       274738  736918  999.999756  
5       0       261173  0       13258   0       311     0       274742  737054  1000.001892  
6       0       261153  0       13284   0       311     0       274748  737137  1000.204529  
7       0       261152  0       13280   0       312     0       274744  736800  1000.188110  
8       0       261154  0       13277   0       311     0       274742  737081  1000.107178  
9       0       261150  0       13278   0       310     0       274738  737309  1000.189392  
10      2348    260942  0       13271   0       310     2348    274523  737683  1001.341980  
11      2342    260915  0       13264   0       310     2342    274489  737720  1000.341797  
12      2340    260900  0       13272   0       310     2340    274482  738490  1000.266357  
13      2339    260885  0       13284   0       309     2339    274478  738363  1000.312317  
这是我的文件的一部分的示例。根据文件的不同,行数可以从1000到50000不等

现在,我需要检查最后一行的第二列和第二列。如果这些数字的总和小于10,这意味着我的数据有问题

我知道如何用“tail”打印出最后一行,但我从未尝试过提取数字,将它们相加,然后与一个数字进行比较,看它是小还是大


谢谢。

使用
tail
提取最后一行并将其馈送到
awk

awk 'END{x=($2+$(NF-1));if(x<10) print "Wrong";else print "correct"}' test
correct
$ tail -n 1 file | awk '$2 + $(NF-1) < 10 {print "Wrong"}'
$tail-n1文件| awk'$2+$(NF-1)<10{打印“错误”}

如果你的文件有很多行,速度会更快。

问题需要进一步澄清。你应该提供更多关于选择的信息。提到[POSIX]标准并没有说$0也被保留在[结束规则内]——事实上,gawk确实保留了$0的值,以便在结束规则中使用。但是,请注意,Unix awk以及其他可能的实现并没有这样做。我用
gawk
mawk
原始awk
进行了测试,它们似乎都保留了它。
$ tail -n 1 file | awk '$2 + $(NF-1) < 10 {print "Wrong"}'