Перебрать массив массивов строк с пробелами
Я пытаюсь перебрать массив, который содержит другие массивы, и эти массивы состоят из строк с пробелами. Проблема в том, что я не могу сохранить интервал в строке. Строка с пробелами либо делится на несколько элементов, если я изменяю IFS на \ n, либо все элементы массива отображаются как 1 элемент, если я оставляю IFS без изменений, вот пример кода:
#!/bin/sh
low1=("AA QQ" "BB LL")
low2=("CC" "DD")
low3=("EE" "FF")
high=(low1 low2 low3)
for high_item in ${high[@]}
do
eval arrayz=\${$high_item[@]}
#IFS=
Выход:
AA
QQ
BB
LL
CC
DD
EE
FF
Как видите элементы "AA QQ" и "BB LL"; были расколоты
Если я раскомментирую строку, которая устанавливаетIFS
в\n
Я получаю следующее:
AA QQ BB LL
CC DD
EE FF
Теперь "AA QQ" и "BB LL"; сцеплены!
Есть ли в любом случае, я могу сохранить эти элементы так же, как они являются оригинальными ... Мне нужен вывод, чтобы выглядеть так:
AA QQ
BB LL
CC
DD
EE
FF
\n'
for item in $arrayz
do
echo $item
done
done
Выход:
AA QQ BB LL CC DD EE FF
Как видите элементы "AA QQ" и "BB LL"; были расколоты
Если я раскомментирую строку, которая устанавливаетIFS
в\n
Я получаю следующее:
AA QQ BB LL CC DD EE FF
Теперь "AA QQ" и "BB LL"; сцеплены!
Есть ли в любом случае, я могу сохранить эти элементы так же, как они являются оригинальными ... Мне нужен вывод, чтобы выглядеть так:
AA QQ BB LL CC DD EE FF