我有一个格式的 csv(在 Linux 上使用 Bash)
DN , MAC , Partition ,
123 , abc , xyz
321 , asd , asd
我可以通过使用 awk 来解析它
eval MAC=($(awk -F "," '{print $1}' random.csv))
这是针对 CSV 中的每一列完成的,因此我可以单独调用 DN[2]
、MAC[2]
等,这是手动的并单独解析它们。
但是如何按行解析 csv?
例如:如果我调用DN
是123
,那么相应的MAC
和Partition
也应该被返回。
最佳答案
尝试循环:
while IFS=, read dn mac partition
do
echo "Do something with $dn $mac and $partition"
done < file
要选择一条记录,您可以使用 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
关于linux - 在 bash 中解析 CSV 并分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350208/