Transformar valores em uma linha pelo primeiro campo

1

Eu queria saber se existe uma maneira fácil de fazer o seguinte sem escrever um script.

Transformar

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

para

1234,a
1234,b
1234,d
2345,e
2345,f
2345,g
2345,h
    
por dasman 09.03.2015 / 20:00

2 respostas

1

Deve ser fácil com 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
    
por 09.03.2015 / 20:10
0
perl -nE  '/(.*?)"(.*)"/;  say "$1$_" for split /;/,$2'
    
por 09.03.2015 / 20:35