在bash中解析CSV并分配变量

Kap*_*n K 4 linux csv bash awk parsing

我有一个格式的csv(在Linux上使用Bash)

DN , MAC , Partition ,  

123 , abc , xyz  
321 , asd , asd 
Run Code Online (Sandbox Code Playgroud)

我可以使用awk解析它

eval MAC=($(awk -F "," '{print $1}' random.csv))
Run Code Online (Sandbox Code Playgroud)

这是在CSV每一列完成,因此我可以打电话DN[2],MAC[2]独立等,这是人工和单独分析它们.

但是如何逐行解析csv呢?例如:如果我呼叫DN123,则相应的MAC并且Partition也应该返回.

Scr*_*zer 10

尝试循环:

while IFS=, read dn mac partition
do 
  echo "Do something with $dn   $mac and $partition"
done < file
Run Code Online (Sandbox Code Playgroud)

要选择记录,您可以使用case语句:

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
Run Code Online (Sandbox Code Playgroud)