行グループが変更された場合にファイルに行を挿入する

行グループが変更された場合にファイルに行を挿入する

次のテキストファイルがあるとしましょう。

group1 hello
group1 there
group1 nice line
group2 here
group2 we
group2 go

私がやりたいことは、行グループが変更されたときに行を挿入することです。たとえば、次のようになります。

group1 hello
group1 there
group1 nice line
---------------------------------------
group2 here
group2 we
group2 go

行が最初と最後の行として表示されるかどうかは関係ありません。この時点では、情報を分離する何かが必要です。

sedまたは、どのようにこれを行うことができますかawk?それとも別の方法がありますか?

ベストアンサー1

そしてawk

awk 'NR!=1&&x!=$1{print "---"} {x=$1}1' file
  • NR!=1&&x!=$1:最初の行を除くすべての行に適用し、最初のフィールドが変更されたことを確認します。
  • print "---":その場合はダッシュを印刷してください。
  • {x=$1}:次の繰り返しのためにxを設定します。
  • 1awk:各行の実際の条件を印刷します。

おすすめ記事