GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare l'indice di una parola in una stringa in bash?

Bash esegue da solo la suddivisione delle parole in stringhe, infatti, il più delle volte, evitarlo è un problema e il motivo per cui citare è così importante. È facile sfruttarlo nel tuo caso:basta inserire la stringa in un array senza virgolette:bash utilizzerà la divisione delle parole per separare i singoli elementi. Supponendo che la tua stringa sia memorizzata nella variabile $str ,

ar=($str) # no quotes!

restituirà un array di 5 elementi. L'indice dell'array è l'indice delle parole (contando a partire da 0, come nella maggior parte dei linguaggi di scripting e programmazione), ad esempio "Age" è accessibile utilizzando

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

oppure, se hai bisogno di trovare l'indice dell'elemento in base al contenuto, esegui un ciclo sull'array, ad esempio

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"

Sostituisci *Age con Age -- questo rimuoverà qualsiasi cosa prima di "Age":

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

Ottieni qualsiasi cosa prima di "Age"

$ echo ${FOO/Age*/}
Name

Ottieni la lunghezza di quella stringa (che è l'indice di "Età"):

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

Linux
  1. Come posso aggiungere una stringa all'inizio di ogni file in una cartella in bash?

  2. Come reindirizzare i risultati di "trova" a mv in Linux

  3. Come trovare il file manager predefinito?

  4. Come cambiare rapidamente la prima parola in un comando Bash?

  5. Come posso controllare i caratteri letterali di una stringa di comando bash?

Come utilizzare il comando di lettura Bash

Come trovare una stringa o una parola specifica in file e directory

Come verificare se una stringa contiene una sottostringa in Bash

Come trovare una stringa in un file su Linux

Come trovare e sostituire testo, parola o stringa in un file

Come trovare file con dozzine di criteri con il comando Trova Bash