我有一个文件,它有一个这样的重复模式,总共大约 30000 行:
K 102940
-1.34869738 20.57483945 -50.68597047
23.77974649 -24.07345423 15.78597590
---
K 102942
-1.34869738 20.57483945 -50.68597047
23.77974649 -24.07345423 15.78597590
---
我需要检查第二行的第三个字段,如果它在 -20 和 +20 的范围内,那么我只想打印后面的行(上例中的第三行)。如果该值不在范围内(如上),我想检查第 2+100 行(忽略中间的一行)。继承人我到目前为止:
awk -v l=2 -v d=100 'NR==l'; 'if ($3 =={-20..20}); {getline;print;exit}; else (l+=d) next; fi' inputfile
但错误'-bash: if ... next: command not found
有人对如何改进代码有任何想法吗?或者也许是处理这个文件的更好方法?
非常感谢任何帮助。谢谢!