AWKを使用して2つの列の形式を変更する

AWKを使用して2つの列の形式を変更する

入力として次のデータがあります。

A 1,2
B 3,2,5
C 6,7
D 1,3,5,8

AWKを使用して次の出力をどのように取得できますか?

A 1
A 2
B 3
B 2
B 5
C 6
C 7
D 1
D 3
D 5
D 8

ベストアンサー1

$ awk -F '[ ,]' '{ for (i = 2; i <= NF; ++i) print $1, $i }' file
A 1
A 2
B 3
B 2
B 5
C 6
C 7
D 1
D 3
D 5
D 8

これは、行をスペースまたはカンマ区切りのフィールドで構成されるものとして扱います。各行について、awkプログラムは行の最後まで第2のフィールドを繰り返す。各フィールドについて出力されます。最初現在のフィールドを持つ行のフィールド。

おすすめ記事