合計約 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
---
2 行目の 3 番目のフィールドをチェックする必要があります。それが -20 と +20 の範囲内にある場合は、次の行 (上記の例の 3 行目) のみを印刷したいと思います。値が範囲内にない場合 (上記のように)、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
コードを改善する方法を知っている人はいますか? それとも、このファイルを処理するためのより良い方法でしょうか?
どんな助けでも大歓迎です。ありがとう!