以前、awk を使用してカウント データのエラーを修正する方法を尋ねました。データの最初の列は、測定されているサブアリーナを識別するために使用される数値であり、2 番目の列はそのサブアリーナからのカウント データです。カウントは自動化されており、プログラムはエラーを起こします (下に # で示されています)。カウントされている動物が特定のサブアリーナの範囲外に移動したため、「ミスカウント」することがあります。
1 0
1 2
1 6
1 7
1 7
1 8
1 7 #
1 7 #
1 9
2 0
2 0
2 1
2 4
2 3 #
2 3 #
2 4
2 4
2 6
上記を次のように修正したいと思います。
1 0
1 2
1 6
1 7
1 7
1 8
1 8
1 8
1 9
2 0
2 0
2 1
2 4
2 4
2 4
2 4
2 4
2 6
親切に提案されたコードには、各アリーナのデータ内で修正するための for ループが含まれていませんでした (ファイルごとに合計 20 あります)。これを理解しようとしましたが、構文エラーで非常に苦労しています。場合によっては不正なステートメント エラーが発生することもあります。以下が機能しない理由についてのヒントをいただければ幸いです(申し訳ありませんが、私は初心者です。これは私が試した多くの反復の1つであり、どれもきれいではありません)。
awk 'i=1; i<=20; i++; $1=i {NR > 1 && $2 < p {$2 = p} {p = $2} 1}' infile > outfile