我正在尝试将带有双引号字符串的行拆分为一个数组:
输入.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”文件,如下所示: 输入.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'
所有的双引号都被替换为单引号,除了那些带有值的。
最佳答案
假设您正在使用 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
让您完成大部分工作。请记住,这是非常脆弱的。
关于bash - 如何在 shell 脚本中创建双引号字符串行数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27517040/