我试图找出列中的减量,如果找到则打印最后一个最高值。
例如:
从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
答案 0 :(得分: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
答案 1 :(得分:0)
将每个数字存储在名为prevNumber的单个变量中,然后当您打印下一个变量时,请执行以下操作: if(newNumber&lt; prevNumber)print prevNumber;
真的不知道你在用什么语言
答案 2 :(得分:0)
你可以说:
awk '$1 > max {max=$1; maxline=$0}; END{ print maxline}' inputfile
对于您的输入,它打印:
445 sss