それを手伝ってください。ファイルを変換したい
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
それを手伝ってください。ファイルを変換したい
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
あなたはこれを行うことができます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
し、次の入力行で使用するためにその最初のフィールドを変数に保存します。