最初のフィールドに基づいて行の値を変換する

最初のフィールドに基づいて行の値を変換する

スクリプトを書かずに次のことを行う簡単な方法があるかどうか疑問に思います。

切り替える

1234,"a;b;d"
2345,"e;f;g;h"

到着

1234,a
1234,b
1234,d
2345,e
2345,f
2345,g
2345,h

答え1

簡単にする必要がありますawk

$ awk -F'[";]' -vOFS='' '{for(i=2;i<NF;i++)print $1,$i}' file
1234,a
1234,b
1234,d
2345,e
2345,f
2345,g
2345,h

答え2

perl -nE  '/(.*?)"(.*)"/;  say "$1$_" for split /;/,$2'

関連情報