I have a csv of the format (Working on Bash on linux)
DN , MAC , Partition ,
123 , abc , xyz
321 , asd , asd
I am able to parse it using awk by using
eval MAC=($(awk -F "," '{print $1}' random.csv))
This is done for each column in the CSV and therefore I can call DN[2]
, MAC[2]
etc individually which is manual and parses them individually.
But how can I parse the csv by row?
For example : If I call for DN
is 123
, the corresponding MAC
and Partition
should also be returned.
Try a loop:
while IFS=, read dn mac partition
do
echo "Do something with $dn $mac and $partition"
done < file
To select a record you could use a case statement:
P2=123
while IFS=, read dn mac partition
do
case $dn in
($P2) echo echo "Do something with $dn $mac and $partition" ;;
(*) echo "Do nothing" ;;
esac
done < file
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With