Eu tenho um cenário em que preciso desarticular os dados para alcançar o relacionamento pai-filho. Meus dados de origem são os seguintes:
Key_Col|Hierarquia
1|a,b,c,d
2|a,b,c,d,e
Minha saída esperada abaixo:
Chave Col | Criança | Pai |
---|---|---|
1 | d | c |
1 | c | b |
1 | b | a |
1 | a | nulo |
2 | e | d |
2 | d | c |
2 | c | b |
2 | b | a |
2 | a | nulo |
Você poderia me informar como posso conseguir isso por meio de um script bash?
O script que usei é:
Var="1|a,b,c,d";
for i in $Var
do
Key=`echo $i |cut -d'|' -f1`
Hierarchy=`echo $i |cut -d'|' -f2`
Delim_Count=`echo ${Hierarchy} |awk -F',' '{ print NF-1 }'`
for (( c=$Delim_Count+1; c>=1; c-- ))
do
Parent=`echo ${Hierarchy} |cut -d',' -f$c`
Prev=`expr $c - 1`
if [ $Prev -ne 0 ]; then
Child=`echo ${Hierarchy} |cut -d',' -f${Prev}`
echo "${Key}|${Parent}|${Child}"
else
echo "${Key}|${Parent}|"
fi
done
done
Mas o problema é que, se houver mais de 100 linhas, o script levará muito tempo para ser concluído.