Loop através de matriz de matrizes de string com espaços
Eu estou tentando loop através de uma matriz que contém outras matrizes e essas matrizes consistem em seqüências de caracteres com espaços. O problema é que não consigo preservar o espaçamento na string. A string com espaços é dividida em vários itens se eu mudar o IFS para \ n ou todos os elementos da matriz são vistos como 1 item se eu deixar o IFS inalterado aqui está um código de exemplo:
#!/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=Saída:
AA
QQ
BB
LL
CC
DD
EE
FF
Como você pode ver, os elementos "AA QQ" e "BB LL" foram divididos.
Se eu descomentar a linha que defineIFS
para\n
Eu recebo o seguinte:
AA QQ BB LL
CC DD
EE FF
Agora "AA QQ" e "BB LL" são concatenados!
Existe de qualquer maneira eu posso preservar esses elementos exatamente como eles são originais ... Eu preciso que a saída pareça assim:
AA QQ
BB LL
CC
DD
EE
FF
\n'
for item in $arrayz
do
echo $item
done
done
Saída:
AA QQ BB LL CC DD EE FF
Como você pode ver, os elementos "AA QQ" e "BB LL" foram divididos.
Se eu descomentar a linha que defineIFS
para\n
Eu recebo o seguinte:
AA QQ BB LL CC DD EE FF
Agora "AA QQ" e "BB LL" são concatenados!
Existe de qualquer maneira eu posso preservar esses elementos exatamente como eles são originais ... Eu preciso que a saída pareça assim:
AA QQ BB LL CC DD EE FF