Ich suche nach einer schnellen / einfachen Möglichkeit, eine Zeichenfolge in ksh aufzuteilen.
Die Anzahl der Trennzeichen (Leerzeichen) zwischen den einzelnen Elementen ist unterschiedlich.
Beispiel:
value1 value2 value3
Anregungen / Ratschläge?
Die Verwendung einer for-Schleife mit der Eingabezeichenfolge wird auf Leerzeichen aufgeteilt.
LIST="value1 value2 value3" for x in $LIST ; do echo $x done
Erträge
oder
LIST="value1 value2 value3" set -A STRING "$LIST" for x in $STRING ; do echo $x done
Sie können ein Array verwenden.
LIST="value1 value2 value3" set -A values $LIST echo $ value1
Piping durch sed und optional grep funktioniert auch
LIST="value1 value2 value3" ; echo "$LIST" | sed 's/[[:space:]]/\n/g' | grep .
Sie können das grep löschen, wenn Sie auch die Anführungszeichen löschen, wodurch mehrere Leerzeichen entfernt werden, obwohl andere Formatierungen vorgenommen werden können.
LIST="value1 value2 value3" ; echo $LIST | sed 's/[[:space:]]/\n/g'