次のようにタブ区切りのファイルがあります。
211845 032
215979 002 071
217783 143 156 169
219750 111
タブで区切られた複数の項目がある行の場合は、最初の列の値に基づいて新しい行を追加したいと思います。これが私が望む結果です:
211845 032
215979 002
215979 071
217783 143
217783 156
217783 169
219750 111
どんなアイデアでもありがとうございます。このアイデアのためパニックになりました。
ベストアンサー1
、を使用してawk
各行の最初のフィールドの後にあるフィールドを繰り返し、各フィールドに対して新しい行を印刷します。
awk -F'\t' -v OFS='\t' '{for (i=2;i<=NF;i++) print $1,$i}' file
出力:
211845 032
215979 002
215979 071
217783 143
217783 156
217783 169
219750 111
これにより、空の行またはフィールドが1つしかない行を削除できます。これはおそらく欲しいものです。現在の状態に保つには、次のように変更します。
awk -F'\t' -v OFS='\t' 'NF<2 {print; next} {for (i=2;i<=NF;i++) print $1,$i}' file