Use AWK em vez
Esse problema é muito mais fácil de resolver com o AWK. Eu testei isso com o GNU AWK; se você estiver usando outra coisa, talvez seja necessário ajustar um pouco.
#!/usr/bin/gawk -f
BEGIN { FS = "|" }
{
split( $3, array, /,/ )
print $1 "," array[2]
print $1 "," $2 "," array[2]
print $1 "," $3
}
Armazene o script em algum lugar (por exemplo, parse.awk ) e verifique se ele é executável. Você pode então chamar o script em um arquivo CSV ou na entrada padrão e coletar seus resultados da seguinte forma:
$ echo '1,3917,3917,BGP=694|Ethernet=1610|LAG=3,Y' | parse.awk
1,3917,3917,BGP=694,Y
1,3917,3917,BGP=694,Ethernet=1610,Y
1,3917,3917,BGP=694,LAG=3,Y