次のテキストファイルがあるとしましょう。
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を設定します。1
awk
:各行の実際の条件を印刷します。