Durchlaufen Sie ein Array von String-Arrays mit Leerzeichen
Ich versuche, ein Array zu durchlaufen, das andere Arrays enthält, und diese Arrays bestehen aus Zeichenfolgen mit Leerzeichen. Das Problem ist, dass ich den Abstand in der Zeichenfolge scheinbar nicht beibehalten kann. Die Zeichenfolge mit Leerzeichen wird entweder in mehrere Elemente unterteilt, wenn ich IFS in \ n ändere, oder alle Elemente des Arrays werden als 1 Element betrachtet, wenn ich IFS unverändert lasse. Hier ist ein Beispielcode:
#!/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=Ausgabe:
AA
QQ
BB
LL
CC
DD
EE
FF
Wie Sie sehen, wurden die Elemente "AA QQ" und "BB LL" aufgeteilt.
Wenn ich die gesetzte Zeile auskommentiereIFS
zu\n
Ich bekomme folgendes:
AA QQ BB LL
CC DD
EE FF
Jetzt sind "AA QQ" und "BB LL" verkettet!
Gibt es eine Möglichkeit, diese Elemente so zu erhalten, wie sie ursprünglich sind? Die Ausgabe muss so aussehen:
AA QQ
BB LL
CC
DD
EE
FF
\n'
for item in $arrayz
do
echo $item
done
done
Ausgabe:
AA QQ BB LL CC DD EE FF
Wie Sie sehen, wurden die Elemente "AA QQ" und "BB LL" aufgeteilt.
Wenn ich die gesetzte Zeile auskommentiereIFS
zu\n
Ich bekomme folgendes:
AA QQ BB LL CC DD EE FF
Jetzt sind "AA QQ" und "BB LL" verkettet!
Gibt es eine Möglichkeit, diese Elemente so zu erhalten, wie sie ursprünglich sind? Die Ausgabe muss so aussehen:
AA QQ BB LL CC DD EE FF