1529.89 1.05 22.36 48.78 33.8
1529.91 2.05 22.36 52.79 36.93
1529.92 3.06 22.36 52.80 36.93
1529.92 4.25 22.36 52.79 36.94
1529.92 5.10 22.36 52.79 36.94
1529.93 5.24 22.36 52.80 36.94
1529.94 6.05 22.36 52.80 36.94
1529.95 6.27 22.36 52.80 36.94
1529.95 7.01 22.36 52.80 36.94
1529.96 7.26 22.36 52.80 36.94
1529.97 8.11 22.36 52.80 36.94
1529.99 9.22 22.35 52.80 36.94
1530.00 10.12 22.36 52.80 36.94
1530.02 11.26 22.36 52.80 36.94
1530.03 12.18 22.36 52.80 36.94
1530.04 13.12 22.36 52.81 36.94
1530.06 14.04 22.36 52.81 36.95
1530.10 16.21 22.36 52.81 36.94
1530.11 17.17 22.35 52.80 36.94
1530.12 18.09 22.35 52.81 36.94
1530.14 19.19 22.35 52.81 36.94
1530.15 20.19 22.35 52.80 36.94
1530.17 21.24 22.35 52.81 36.94
1530.18 22.05 22.35 52.81 36.95
1530.20 23.14 22.35 52.81 36.95
1530.21 24.14 22.35 52.81 36.94
1530.23 25.23 22.35 52.80 36.94
1530.23 26.03 22.35 52.80 36.94
1530.23 26.24 22.34 52.80 36.94
1530.26 27.10 22.35 52.81 36.95
この種のファイルがあります。私が必要とするのは、2番目のフィールドの整数が前の行の2番目のフィールドの同じ数字と等しくない場合は、各行を印刷することです。たとえば、次の2行は次のようになります。
1529.94 6.05 22.36 52.80 36.94
1529.95 6.27 22.36 52.80 36.94
...最初の行だけを印刷し、2行目はスキップしたいと思います。 2番目のフィールド番号は約1300に増加してから1に減少します。
awk substr() 関数を試してみましたが、まだ機能しないようです。
awk -F. '{for (i=NR;i<3814;i++) {i=1 n=(substr($2,4))}{i=i+1 v=(substr($2,4))} {if ((n+v)%2=1) print $0} {i++}}' test.csv
ベストアンサー1
申し訳ありません。あなたのawk
答えはまったく役に立ちません。あなたが表現した要件とは全く異なります。
- フィールド区切り文字は「.」ではなく空白にすることができます。
- 不要な10進解析
substr()
- 素数を整数に丸めるには、
int()
したがって、コードは次のようになります。
awk 'int($2)!=prev{
print
prev=int($2)
}'
1行にするには「;」が必要です。
awk 'int($2)!=prev{print;prev=int($2)}'
結果:
1529.89 1.05 22.36 48.78 33.8
1529.91 2.05 22.36 52.79 36.93
1529.92 3.06 22.36 52.80 36.93
1529.92 4.25 22.36 52.79 36.94
1529.92 5.10 22.36 52.79 36.94
1529.94 6.05 22.36 52.80 36.94
1529.95 7.01 22.36 52.80 36.94
1529.97 8.11 22.36 52.80 36.94
1529.99 9.22 22.35 52.80 36.94
1530.00 10.12 22.36 52.80 36.94
1530.02 11.26 22.36 52.80 36.94
1530.03 12.18 22.36 52.80 36.94
1530.04 13.12 22.36 52.81 36.94
1530.06 14.04 22.36 52.81 36.95
1530.10 16.21 22.36 52.81 36.94
1530.11 17.17 22.35 52.80 36.94
1530.12 18.09 22.35 52.81 36.94
1530.14 19.19 22.35 52.81 36.94
1530.15 20.19 22.35 52.80 36.94
1530.17 21.24 22.35 52.81 36.94
1530.18 22.05 22.35 52.81 36.95
1530.20 23.14 22.35 52.81 36.95
1530.21 24.14 22.35 52.81 36.94
1530.23 25.23 22.35 52.80 36.94
1530.23 26.03 22.35 52.80 36.94
1530.26 27.10 22.35 52.81 36.95
正しいですか?