Tutorial de Bash Globbing

Tutorial de Bash Globbing
Bash no admite expresiones regulares nativas como otros lenguajes de programación estándar. La función de shell bash que se usa para coincidir o expandir tipos específicos de patrones se llama globbing. Globbing se usa principalmente para hacer coincidir los nombres de archivo o buscar contenido en un archivo. Globbing usa personajes comodín para crear el patrón. Los caracteres comodines más comunes que se utilizan para crear patrones de globos se describen a continuación.

Signo de interrogación - (?)

'?' se usa para que coincida con cualquier personaje. Puedes usar '?' Para varias veces para hacer coincidir múltiples personajes.

Ejemplo 1:

Supongamos que desea buscar en esos nombres de archivos de texto cuyos nombres son de 4 caracteres de largo y la extensión es .TXT. Puede aplicar el patrón de globos usando '?'Cuatro veces para hacer esta tarea.

Encuentre la lista de todos los archivos y carpetas del directorio actual.

$ ls -l

Ejecute el siguiente comando Busque esos archivos cuyos nombres son de cuatro caracteres y desconocidos.

$ ls -l ????.TXT

Ejemplo-2:

Supongamos que desea buscar en esos archivos de documentos cuyos nombres son de 8 caracteres, los primeros 4 caracteres son F, O, O y T y la extensión es doc. Ejecute el siguiente comando con el patrón de globos para buscar los archivos.

$ ls -l pie????.doc

Ejemplo-3:

Supongamos que sabe que el nombre de archivo es 'mejor' y la extensión es de 3 caracteres, pero no sé la extensión. Ejecute el siguiente comando usando '?'Para buscar todos los archivos con el nombre' prueba 'que tiene una extensión de tres caracteres de largo.

$ ls -l mejor.???

Asterisco - (*)

'*' se usa para que coincida con cero o más caracteres. Si tiene menos información para buscar cualquier archivo o información, puede usar '*' En el patrón global.

Ejemplo 1:

Supongamos que desea buscar todos los archivos de 'PL' extensión. Ejecute el siguiente comando usando '*' Para hacer esa tarea.

$ ls -l *.por favor

Ejemplo-2:

Supongamos que conoce el carácter inicial del nombre de archivo solo que es 'a'. Ejecute el siguiente comando usando '*' para buscar todos los archivos del directorio actual cuyos nombres se inician con 'a'.

$ ls -l a*.*

Ejemplo-3:

Puede aplicar '*' en el script bash para varios fines sin buscar archivos. Crear un archivo bash llamado 'controlar.mierda Con el siguiente script. Aquí, cuando el usuario escriba 'y 'o' y 'o' sí 'o' sí ' entonces 'confirmado' imprimirá y cuando el tipo escriba 'n' o 'n' o 'no' o 'no' entonces 'No confirmado' imprimirá.

#!/bin/bash
echo "¿Quieres confirmar?"
Respuesta de lectura
Caso $ respuesta en
[Yy]*) echo "confirmado.";;
[Nn]*) echo "no confirmado.";;
*) echo "intente de nuevo.";;
ESAC

Ejecutar el guión.

cheque de $ bash.mierda

Corchete - ([])

'[]' se usa para que coincida con el personaje desde el rango. Algunas de las declaraciones de rango en su mayoría utilizadas se mencionan a continuación.

Todos los alfabetos mayúsculas se definen por el rango como, [: superior:] o [a-z] .

Todos los alfabetos en minúsculas se definen por el rango como, [: Lower:] o [A-Z].

Todos los dígitos numéricos se definen por el rango como, [: dígito:] o [0-9].

Todos los alfabetos mayúsculas y inferiores se definen por el rango como, [: alfa:] o [a-za-z].

Todos los alfabetos mayúsculas, el alfabeto en minúsculas y los dígitos se definen por el rango como, [: alnum:] o [a-z-z0-9]

Ejemplo 1:

Ejecute el siguiente comando para buscar todos los archivos y carpetas cuyo nombre contiene pag o Q o riñonal o s.

$ LS -L [P -S]**

Ejemplo-2:

Ejecute el siguiente comando para buscar todos los archivos y carpetas cuyo nombre comienza con cualquier dígito de 1 a 5.

$ ls -l [1-5]*

CARET - (^)

Puedes usar '^' con un soporte cuadrado para definir el patrón de globo más específicamente. '^' se puede usar dentro o fuera del soporte cuadrado. '^' se usa fuera del soporte cuadrado para buscar en los contenidos del archivo que comienza con una gama dada de caracteres. '^' se usa dentro del soporte cuadrado para mostrar todo el contenido del archivo resaltando las líneas que comienzan con una gama dada de caracteres . Puede usar diferentes tipos de patrones de globo para buscar contenido particular desde un archivo. 'Grep' El comando se usa para la búsqueda de contenido en Bash. Supongamos que tiene un archivo de texto nombrado 'lista.TXT' con el siguiente contenido. Pruebe los siguientes ejemplos para ese archivo.

Manzana
4000
Banana
700
Naranja
850
Pera
9000
Jaqueta

Ejemplo 1:

Ejecute el siguiente comando para buscar esas líneas desde lista.TXT archivo que comienza con P o Q o R.

Lista de $ Grep '^[P-R]'.TXT

Ejemplo - 2:

Ejecute el siguiente comando para resaltar esas líneas desde lista.TXT archivo que comienza con A o B o C.

Lista de $ Grep '[^a-c]'.TXT

Signo excamatorio - (!)

Puedes usar '!' Dentro del patrón de rango. Funciona igual que el uso del símbolo '^' fuera del patrón de rango. Algunos ejemplos de uso '!' El signo se proporciona a continuación.

Ejemplo 1:

Ejecute el siguiente comando para mostrar esas líneas desde lista.TXT archivo que comienza con 'P' o Q o R.

$ Grep [!P-R] Lista.TXT

Ejemplo - 2:

Ejecute el siguiente comando para mostrar esas líneas desde lista.TXT archivo que comienza con cualquier dígito desde 4 a 8.

$ Grep [!4-8] Lista.TXT

Signo de dólar - ($)

ps se usa para definir el personaje final. Si sabe que desea buscar información basada en el último carácter, puede usar ps En el patrón global.

Ejemplo 1:

Ejecute el siguiente comando para buscar esas líneas desde lista.TXT Archivo que termina con 'a'.

$ Grep A LISTA.TXT

Ejemplo - 2:

Ejecute el siguiente comando para buscar esas líneas desde lista.TXT Archivo que termina con el número 50.

$ GREP 50 $ LISTA.TXT

Llave - ()

'' se puede usar para hacer coincidir los nombres de archivo con más de un patrones de globos. Cada patrón está separado por ',' en el soporte rizado sin ningún espacio. Algunos ejemplos se dan a continuación.

Ejemplo 1:

Ejecute el siguiente comando para buscar esos archivos cuyos nombres tienen 5 caracteres de largo y la extensión es 'Sh' o los últimos dos caracteres de los archivos son 'calle' y la extensión es 'TXT'.

$ ls -l ?????.sh,*st.TXT

Ejemplo - 2:

Ejecute el siguiente comando para eliminar todos los archivos cuyas extensiones son 'doc' o 'docx'.

$ rm *.doc,*.docx

Tubería- (|)

'|' El signo también se usa para aplicar más de una condición en el patrón de globos. Cada patrón está separado por '|' símbolo en el comando.

Ejemplo 1:

Ejecute el siguiente comando para buscar aquellos nombres de archivo que comienzan con el carácter 'A' y tiene la extensión 'Bash' o 'SH'.

$ ls a*+(.Bash |.mierda

Ejemplo - 2:

Crear un archivo bash llamado 'menú.intento' y agregue el siguiente script. Si el tipo de usuario 1 o s Entonces se imprimirá "Buscando texto". Si el tipo de usuario 2 o R Entonces se imprimirá "Reemplazo de texto". Si el tipo de usuario 3 o D Entonces se imprimirá "Eliminar texto". Imprimirá "Intentar otra vez" Para cualquier otra entrada.

#!/bin/bash
echo "Seleccione cualquier opción en el menú:"
Respuesta de lectura
Caso $ respuesta en
1 | S) echo "Búsqueda de texto" ;;
2 | R) echo "reemplazar texto" ;;
3 | D) echo "Eliminar texto" ;;
*) echo "intente de nuevo.";;
ESAC

Ejecutar el guión.

Menú de $ Bash.intento

CONCLUSIÓN

Algunos de los patrones de globos más utilizados se explican en este tutorial utilizando ejemplos muy simples. Espero que después de practicar los ejemplos anteriores, el concepto de Globbing será claro para usted y podrá aplicarlo en comandos y scripts de Bash con éxito.

Para obtener más información, consulte este video: