GNU/Linux >> Linux Esercitazione >  >> Linux

bash - trova la posizione dell'indice della stringa della sottostringa

Usa l'espansione dei parametri:

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 contiene la parte di $t dopo $ stringa di ricerca. La posizione iniziale della sottostringa è quindi la lunghezza dell'intera stringa meno la lunghezza di $rest meno la lunghezza della $searchstring stessa.


Ancora meglio e adatto a più casi (considera '#' contro '##' e avere più di un'istanza di 'IP for') sarebbe rimuovere dalla stringa corrispondente fino alla fine e utilizzare la lunghezza di ciò che rimane.

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. Shell test per trovare un motivo in una stringa?

  2. Controlla se String contiene una sottostringa in Python

  3. Come verificare se la stringa contiene una sottostringa in Bash

  4. Esempi di manipolazione di stringhe Bash:lunghezza, sottostringa, trova e sostituisci

  5. Converti una stringa di testo in bash in array

Bash concatena le stringhe

Come verificare se una stringa contiene una sottostringa in Bash

Come trovare una stringa in un file su Linux

Sostituzione di String in Bash

Bash Scripting – Manipolazione di stringhe

Sostituzione di una sottostringa con un'altra stringa in Bash