GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich den Index eines Wortes in einer Zeichenfolge in Bash?

Bash führt die Wortaufteilung in Zeichenfolgen ganz von selbst durch – tatsächlich ist es meistens ein Problem, dies zu vermeiden, und der Grund für das Zitieren ist so wichtig. Es ist einfach, das in Ihrem Fall zu nutzen:Fügen Sie Ihren String einfach in ein Array ein, ohne ihn in Anführungszeichen zu setzen – bash verwendet die Wortaufteilung, um die einzelnen Elemente zu trennen. Angenommen, Ihr String ist in der Variablen $str gespeichert ,

ar=($str) # no quotes!

gibt ein Array von 5 Elementen zurück. Ihr Array-Index ist Ihr Wortindex (von 0 aufwärts zählend, wie in den meisten Skript- und Programmiersprachen), d. h. auf „Alter“ wird mit

zugegriffen
${ar[1]}  # 0 => Name, 1 => Age, 2 => Sex, 3 => ID, 4 => Address

oder, wenn Sie den Elementindex nach Inhalt finden müssen, durchlaufen Sie das Array, z. B.

function el_index {
    cnt=0; for el in "${ar[@]}"; do
        [[ $el == "$1" ]] && echo $cnt && break
        ((++cnt))
    done
}
el_index "Age" # => 1

$ export FOO="Name   Age Sex  ID         Address"

*Alter durch Alter ersetzen – dies entfernt alles vor „Alter“:

$ echo ${FOO/*Age/Age}
Age Sex ID Address

Holen Sie sich alles vor "Alter"

$ echo ${FOO/Age*/}
Name

Holen Sie sich die Länge dieser Zeichenfolge (die der Index von „Alter“ ist):

$ BEGIN=${FOO/Age*/}
$ echo ${#BEGIN}
7

Linux
  1. So teilen Sie eine Zeichenfolge in Bash-Skript auf

  2. Wie kann ich am Anfang jeder Datei in einem Ordner in Bash eine Zeichenfolge hinzufügen?

  3. Wie finde ich den Standard-Dateimanager?

  4. Wie finde ich die Zeilennummer in Bash, wenn ein Fehler aufgetreten ist?

  5. Wie finde ich die UUID eines Dateisystems

So verwenden Sie den Bash-Lesebefehl

So finden Sie eine bestimmte Zeichenfolge oder ein bestimmtes Wort in Dateien und Verzeichnissen

So prüfen Sie, ob eine Zeichenfolge in Bash eine Teilzeichenfolge enthält

So finden Sie eine Zeichenfolge in einer Datei unter Linux

So suchen und ersetzen Sie Text, Wort oder Zeichenfolge in einer Datei

So finden Sie Dateien mit Dutzenden von Kriterien mit dem Bash-Suchbefehl