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

bash - findet die Position des String-Index des Teilstrings

Parametererweiterung verwenden:

t="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
searchstring="IP for"

rest=${t#*$searchstring}
echo $(( ${#t} - ${#rest} - ${#searchstring} ))

$rest enthält den Teil von $t after $suchzeichenfolge. Die Startposition des Teilstrings ist daher die Länge des gesamten Strings minus der Länge des $rests minus der Länge des $suchstrings selbst.


Noch besser und für mehr Fälle geeignet (betrachten Sie '#' versus '##' und mehr als eine Instanz von 'IP for') wäre es, aus der übereinstimmenden Zeichenfolge bis zum Ende zu entfernen und die verbleibende Länge zu verwenden.

text="MULTI: primary virtual IP for xyz/x.x.x.x:44595: 10.0.0.12"
search="IP for"

prefix=${text%%$search*}
echo ${#prefix}

Linux
  1. Bash Brace Erweiterung &Variablen?

  2. Überprüfen Sie, ob String in Python einen Teilstring enthält

  3. So finden Sie die Länge der Zeichenfolge in Bash [Schneller Tipp]

  4. So prüfen Sie, ob String in Bash einen Teilstring enthält

  5. Beispiele für Bash-String-Manipulationen – Länge, Teilstring, Suchen und Ersetzen

Bash Strings verketten

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

So finden Sie eine Zeichenfolge in einer Datei unter Linux

Ersetzen von Zeichenfolgen in Bash

Bash-Scripting – String-Manipulation

Ersetzen einer Teilzeichenfolge durch eine andere Zeichenfolge in Bash