GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo encontrar el índice de una palabra en una cadena en bash?

Bash realiza la división de palabras en cadenas por sí mismo; de hecho, la mayoría de las veces, evitar eso es un problema, y ​​la razón por la que citar es tan importante. Es fácil aprovechar eso en su caso:simplemente coloque su cadena en una matriz sin citarla; bash usará la división de palabras para separar los elementos individuales. Suponiendo que su cadena esté almacenada en la variable $str ,

ar=($str) # no quotes!

devolverá una matriz de 5 elementos. Su índice de matriz es su índice de palabras (contando desde 0, como en la mayoría de los lenguajes de secuencias de comandos y programación), es decir, se accede a "Edad" usando

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

o, si necesita encontrar el índice del elemento por contenido, recorra la matriz, es decir,

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"

Reemplace *Edad con Edad -- esto eliminará cualquier cosa antes de "Edad":

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

Obtenga cualquier cosa antes de "Edad"

$ echo ${FOO/Age*/}
Name

Obtenga la longitud de esa cadena (que es el índice de "Edad"):

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

Linux
  1. ¿Cómo puedo agregar una cadena al comienzo de cada archivo en una carpeta en bash?

  2. ¿Cómo encuentro el tamaño máximo de pila?

  3. Cómo buscar la palabra exacta si la cadena tiene un punto

  4. ¿Cómo cambiar rápidamente la primera palabra en un comando Bash?

  5. bash - encuentra la posición del índice de cadena de la subcadena

Cómo usar el comando de lectura Bash

Cómo encontrar una cadena o palabra específica en archivos y directorios

Cómo verificar si una cadena contiene una subcadena en Bash

Cómo encontrar una cadena en un archivo en Linux

Cómo buscar y reemplazar texto, palabra o cadena en un archivo

Cómo encontrar archivos con docenas de criterios con el comando Bash Find