Para um shell com um read
integrado que possa manipular o CSV, você pode usar ksh93
em vez de bash
:
$ while IFS='|' read -rS a b c; do printf '%s\n' "$b"; done < file
111
222
333
Para converter esse formato em algo que bash
' read
pode manipular, você pode:
< file ksh93 -c 'while IFS="|" read -rSA a; do
printf "%s|" "${a[@]//[\|]/\$ while IFS='|' read -rS a b c; do printf '%s\n' "$b"; done < file
111
222
333
}"
printf "< file ksh93 -c 'while IFS="|" read -rSA a; do
printf "%s|" "${a[@]//[\|]/\%pre%}"
printf "%pre%"
done' |
bash -c 'while IFS="|" read -d "" a b c; do
printf "%s\n" "$b"
done'
"
done' |
bash -c 'while IFS="|" read -d "" a b c; do
printf "%s\n" "$b"
done'