2016-09-12 61 views
-2

較小的特定的詞和我有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,這意味着我的數據有問題。

我知道如何打印出的「尾巴」的最後一行,但我從來沒有試圖提取號碼,總結起來,並比較了一些,看它是否是更小或更大。

謝謝。使用

+2

問題需要進一步澄清。 – anubhava

+0

您應該提供更多關於您選擇的信息。 –

回答

1

使用tail提取的最後一行,並喂以awk

$ tail -n 1 file | awk '$2 + $(NF-1) < 10 {print "Wrong"}' 

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

0
awk 'END{x=($2+$(NF-1));if(x<10) print "Wrong";else print "correct"}' test 
correct 

的樣本數據:

cat test 

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 
+1

https://www.chemie.fu-berlin.de/chemnet/use/info/gawk/gawk_9.html#SEC95提到,* [POSIX]標準不說,$ 0還保存[一個END規則內 - - 實際上,gawk確實保留了$ 0的值以用於END規則。請注意,但是,Unix的awk和其他可能的實現,沒有。*我'gawk','mawk'和'原始awk'測試,看他們的樣子保存它。 –