0

列の減少分を見つけようとしています。見つかった場合は、最後の最高値を出力します。

例えば:

から111まで列には445連続的な増分がありますが、その333前の数値よりも小さくなっています。

111 aaa  
112 aaa  
112 aaa  
113 sdf  
115 aaa  
222 ddd  
333 sss  
333 sss  
444 sss  
445 sss  
333 aaa<<<<<<this is less then the number above it (445)  

そのようなシナリオが見つかった場合は、印刷します445 sss

4

3 に答える 3

0

各数値を prevNumber という単一の変数に格納し、次の数値を印刷するときにチェックを行います。たとえば、if (newNumber < prevNumber) print prevNumber;

自分が何語を使っているのかよくわからない

于 2013-10-23T10:53:41.307 に答える
0

あなたは言うことができます:

awk '$1 > max {max=$1; maxline=$0}; END{ print maxline}' inputfile

あなたの入力のために、それは印刷されます:

445 sss
于 2013-10-23T10:54:30.050 に答える
0

たとえば、次のようにします。

$ awk '{if (before>$1) {print before_line}} {before=$1; before_line=$0}' a
445 sss

それは何をしているのですか?変数を確認し、beforeその値を現在の値と比較します。それが大きい場合は、線を印刷します。

多くの場合にも機能します。

$ cat a
111 aaa
112 aaa
112 aaa
113 sdf
115 aaa  <--- this
15 aaa
222 ddd
333 sss
333 sss
444 sss
445 sss  <--- this
333 aaa
$ awk '{if (before>$1) {print before_line}} {before=$1; before_line=$0}' a
115 aaa
445 sss
于 2013-10-23T10:52:53.203 に答える