一致しないパターンの後に新しい行を挿入する

一致しないパターンの後に新しい行を挿入する

次のスクリプト出力があります

host1:101
host1:102
host2:101
host2:102
host2:103
host4:101
host5:101
host5:102
host5:103
host5:104

など..

各ホストグループの後に新しい行を挿入したいと思います。

host1:101
host1:102

host2:101
host2:102

host3:101
host3:102

各連続行を最初のフィールドと比較し、一致しない最初のフィールドの前に新しい行を挿入するオンラインAWKユーザーはありますか?

ベストアンサー1

 awk -F: '{if (NR>1 && save!=$1) print "";} {save=$1; print;}'

行1の前に空の行を挿入したくないので、それ以外の場合も考えないでくださいNR>1。その後、最初のフィールドが前の行に格納された値でない場合は、空の行が印刷されます。

おすすめ記事