如何在shell脚本中创建双引号字符串数组

时间:2014-12-17 01:39:19

标签: bash shell double-quotes

我正在尝试将带有双引号字符串的行拆分为数组:

input.txt中:

"ABC" "This is TEST 1" "12.3.0"    
"AC" "This is TEST 221" "123"    
"CX" "This is TEST 16" "123.2"    
"LM" "This is TEST 9000" "123.6.6.1"

我希望成为每一行的结果:

print $a[0] $a[1] $a[2]

ABC This is TEST 1 12.3.0

如何最好地每行抓取每个字符串?我试图通过命令行和/或shell脚本

来做到这一点

更新: 为了帮助降低复杂性,我更新了我的“input.txt”文件,如下所示: input.txt中:

'ABC' 'This is TEST 1' '12.3.0'    
'AC' 'This is "TEST" 221' '123'    
'CX' 'This is TEST 16' '123.2'    
'LM' 'This is TEST 9000' '123.6.6.1'

所有双引号都已替换为单引号,而其他引号则替换为值。

1 个答案:

答案 0 :(得分:1)

假设你正在使用bash:

IFS='"' a=("ABC" "This is TEST1" "12.3.0")

应该几乎可以工作。索引将关闭,条目为空,但是:

 while IFS='"' read -a a; do 
    echo ${a[1]} ${a[3]} ${a[5]}; done < input

让你在那里大部分时间。请记住,这非常脆弱。