我有一个看起来像这样的文件
1400a_comp 49472 2868636.1026583919660 GOOD
1400a_comp 49473 2868647.1026579919650 GOOD
1400a_comp 49474 2868659.1026575919639 GOOD
1400a_comp 49475 2868670.1026571919627 GOOD
1400a_comp 49476 2868682.1026567819614 GOOD
1400a_comp 49477 2868693.1026563819603 GOOD
Run Code Online (Sandbox Code Playgroud)
我想在文件中搜索第二个字段不加一的实例并打印行号
听起来你想要这样的东西:
awk '$2!=last+1{print NR}{last=$2}' filename
Run Code Online (Sandbox Code Playgroud)
这将第二个字段与最后一个值进行比较,如果等于一个,则打印;然后保存该行的第二个字段以供下一次比较。这将始终显示第一行 (qed)。
我喜欢@Arcege 的解决方案,但无论如何它都会输出第一行。如果你想压制拳头线,你可以稍微修改一下他的解决方案作为
awk 'NR != 1 && $2!=last+1{print}{last=$2}' filename
Run Code Online (Sandbox Code Playgroud)