Bash:用逗号分隔特殊字符

exv*_*nce 6 bash

我有一个逗号分隔的列表,如此...

 00:00:00:00:00:00,Bob's Laptop,11111111111111111
 00:00:00:00:00:00,Mom & Dad's Computer,22222222222222222
 00:00:00:00:00:00,Kitchen,33333333333333333
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历这些行并使用每行中的3列填充变量.当数据没有空格,&符号或撇号时,我的脚本可以正常工作.当它确实有那些然后它不能正常工作.这是我的脚本:

 for line in $(cat list) 
 do 
    arr=(`echo $line | tr "," "\n"`)
    echo "Field1: ${arr[0]}"    
    echo "Field2: ${arr[1]}"
    echo "Field3: ${arr[2]}"
 done
Run Code Online (Sandbox Code Playgroud)

如果你们其中一个bash大师可以指出我如何让​​这个脚本与我的列表一起工作,我将非常感激!

EV

Sea*_*ght 5

while IFS=, read field1 field2 field3
do
  echo $field1
  echo $field2
  echo $field3
done < list
Run Code Online (Sandbox Code Playgroud)