-2

それを手伝ってください。ファイルを変換したい

1.0  0.1  0.02
1.0  0.2  0.04
1.1 -0.2 0.1
1.1 -0.1 0.1
1.2  1.0   0.2

の中へ

1.0  0.1  0.02
1.0  0.2  0.04

1.1 -0.2 0.1
1.1 -0.1 0.1

1.2  1.0   0.2
4

2 に答える 2

2

あなたはこれを行うことができますawk

pax> echo '1.0  0.1  0.02
1.0  0.2  0.04
1.1 -0.2 0.1
1.1 -0.1 0.1
1.2  1.0   0.2' | awk 'last!=""&&last!=$1{print""}{print;last=$1}'

その出力は次のとおりです。

1.0  0.1  0.02
1.0  0.2  0.04

1.1 -0.2 0.1
1.1 -0.1 0.1

1.2  1.0   0.2

分解すると、last最初は空の文字列に設定されます。コードは次のとおりです。

last != "" && last != $1 { print "" }
                         { print; last = $1}

その最初の句は、最初のフィールドが前の最初のフィールド (最初の入力行を除く) と一致しないすべての入力行を選択します。一致する場合は、空白行を出力します。

2 番目の句は、すべての入力行 (条件部分なし) を選択し、現在の入力行を単純に出力lastし、次の入力行で使用するためにその最初のフィールドを変数に保存します。

于 2013-09-13T05:21:55.447 に答える