I'm trying to parse a set of csv files using bash shell script the files looks as below:
File1: /tmp/test.txt
key1,key1file.txt
key2,key2file.txt
key3,key3file.txt
Files: /tmp/inter/key1file.txt
abc,cdf,123,456
Files: /tmp/inter/key2file.txt
abc,cdf,123,456
Files: /tmp/inter/key3file.txt
abc,cdf,123,456
I've tried parsing these files using 2 while loops:
while IFS="," read keycol keyfile
do
while IFS="," read keyval
do
echo "inside inner while loop"
echo "$keycol|$keyval"
done < "/tmp/inter/$keyfile"
done < /tmp/test.txt
and expecting this code to output
key1,abc
key1,cdf
key1,123
key1,456 and so on...
However, i'm not getting any output when i run this code which indicates the second loop is not being executed. Any pointers in the right direction would be of help. Thanks
/tmp/test.txtin one place and/tmp/test.csvin another. Is that it?readis not up to the task of parsing a CSV file; it cannot accommodate commas that are escaped to be part of a field, rather than separating two fields. Use a language that has a proper CSV parser available.