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