ubuntuusers.de

BASH: readarry und Werte neu definieren

Status: Gelöst | Ubuntu-Version: Kubuntu 22.04 (Jammy Jellyfish)
Antworten |

michahe

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 857

Ein Array wird aus einer TextZeile erzeugt:

while read "TextZeile"; do
   readarray -d "|" -t arrArray <<< $TextZeile
   for Param in "${arrArray[@]}"; do
      Param="${Param#"${Param%%[![:space:]]*}"}"   'Führendes Whitespace löschen 
done

Wie kann ich den um das führende Whitespace bereinigten String in das Array zurückschreiben?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Laut diesem Artikel geht folgende Lösung: https://stackoverflow.com/questions/61081608/bash-remove-leading-and-trailing-spaces-in-array

shopt -s extglob                     # turn on extended glob
arr=( "${arr[@]/#+([[:blank:]])/}" ) # remove leading space/tab from each element

Hab's aber nicht getestet.

michahe

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2013

Beiträge: 857

Danke, funktioniert!

Ich frage mich, ob ich

shopt -s extglob                     # turn on extended glob

gemäß dieser Seite mit

shopt -u extglob                     # turn OFF extended glob

abstellen sollte?

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wohnort: Göttingen

Das kommt auf den Rest deines Skriptes an. Aber sicher ist sicher.

Antworten |