'$ value1 value2'という形式の「ヘッダー行」を持つブロックごとに、$ 3列の最小値を探したいとします。ファイルは次のようになりますawkを使用して各ブロックの列で最小値を見つけよう
@ 62.65 -50.35
0 1.50 1.676
1.67 1.50 1.677
1.67 2.25 1.423
2.90 2.25 2.902
2.90 4.95 2.903
3.04 4.95 3.049
@ 63.61 -50.45
0 1.50 1.654
3.42 1.50 1.875
3.43 2.19 3.430
5.31 2.19 1.032
5.32 6.23 5.320
5.43 6.23 5.434
これ以降、最小の$ 3でヘッダーと行全体を印刷します。 (私が試した
awk '{if (!/^@/) {if ($3 < min) {$3=min;} print $1, $2, $3, min; min = $3;} else if (/^@/) min = 10; print $1 $2 $3;}' input.txt > output.txt
私はブロックを分離し、分を「リセット」する悩みを持っている:
だから、私の出力ファイルには、これは私がこれまで試したものです
@ 62.65 -50.35
1.67 2.25 1.423
@ 63.61 -50.45
5.31 2.19 1.032
のようになります。 'start'の値を高く設定する - つまり10)。
私はプログラミングでは新しく、これまで主にawkを使用していました。あなたが私を助けることができれば、それは本当に素晴らしいでしょう!本当にありがとう!乾杯、ISI
に保存されている行を印刷する必要がありますし、それを提供する。 – anubhava
また、これまでの試みを追加してください。それが動作しない場合は大丈夫です、 – ghoti
ようこそ。何を試しましたか? [ヘルプセンター](https://stackoverflow.com/help)にお気軽にお立ち寄りください。 –