A brief introduction to Linux | Part XI: Expresiones regulares y Metacaracteres

  • 0 Respuestas
  • 359 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado TerminusRoot

  • *
  • Underc0der
  • Mensajes: 18
  • Actividad:
    0%
  • Reputación 4
  • Life is a waterfall.
    • Ver Perfil
    • Email
Hola, esta es la Undécima parte de A brief introduction to Linux.

Puede recapitular los otros post aqui abajito.

Parte I   : You are not allowed to view links. Register or Login
Parte II  : You are not allowed to view links. Register or Login
Parte III : You are not allowed to view links. Register or Login
Parte IV  : You are not allowed to view links. Register or Login
Parte V   : You are not allowed to view links. Register or Login
Parte VI  : You are not allowed to view links. Register or Login
Parte VII : You are not allowed to view links. Register or Login
Parte VIII: You are not allowed to view links. Register or Login
Parte IX   : You are not allowed to view links. Register or Login
Parte X    : You are not allowed to view links. Register or Login


Expresiones regulares y Metacaracteres

I. Buscando patrones

Trabajaremos con grep, una herramienta poderosa que nos ayuda con la coincidencia de patrones, y también practicaremos el uso de metacaracteres cuando trabaje con una shell.

Linux facilita la búsqueda a través de archivos de texto al incluir grep (impresión de expresión regular global).

Comencemos usando grep para buscar el patrón "admin" en el archivo **/etc/passwd **:

grep admin /etc/passwd



II. Exclusión de patrones y numeración de líneas

La opción -v permite excluir patrones de la búsqueda. El siguiente comando buscará el string nologin del patrón y excluirá las líneas que lo contienen de la salida. La opción -n agrega números de línea.

grep -nv nologin /etc/passwd



III. Comienzo de un patrón

El signo de intercalación (^) identifica el comienzo de una línea o palabra. Podemos buscar todas las líneas que comienzan con admin en el archivo /etc/passwd con el siguiente comando:

grep ^ admin /etc/passwd



IV. Fin de un patrón

Para marcar el final de una línea o palabra, podemos usar el carácter $. Ejecute el siguiente comando para buscar todas las líneas en el archivo /etc/passwd que terminan con bash:

grep bash$ /etc/passwd



V. Búsqueda sin distinción entre mayúsculas y minúsculas

Por defecto, la búsqueda en grep distingue entre mayúsculas y minúsculas. Para realizar una búsqueda que no distingue entre mayúsculas y minúsculas, podemos usar el modificador -i. El siguiente comando ejecutará una búsqueda sin distinción entre mayúsculas y minúsculas para el cloud en el archivo /etc/passwd:

grep -i cloud /etc/passwd




Puede ver que la palabra  comienza con una mayúscula ** C **.

VI. Expresión regular extendida y altenancia

La expresión regular extendida permite búsquedas más complejas, como las que incluyen alternancias.

Utilice cualquiera de los siguientes comandos para buscar admin o root en el archivo /etc/passwd:

grep -E 'admin|root' /etc/passwd

egrep 'admin|root' /etc/passwd




VII. Emparejar una palabra, usando caracteres de punto

Los caracteres de punto (.) Se pueden usar con grep para hacer coincidir las posiciones en la cadena de búsqueda. Ejecute el siguiente comando para buscar palabras en el archivo /etc/nfsmount.conf que comiencen con def seguido de cuatro caracteres:

grep -w def .... /etc/nfsmount.conf



VIII. Usando el * Carácter

Cuando trabajamos con shell, podemos usar metacaracteres para controlar la entrada-salida o realizar coincidencias. Por ejemplo, el carácter de asterisco (*) coincide de cero a un número ilimitado de caracteres. El siguiente comando generará nombres de todos los archivos en el directorio **/etc ** que comienzan con sys (seguido de cualquier carácter):

ls /etc/sys*




Para enumerar los archivos en el mismo directorio que terminan con .conf, emita el siguiente comando:

ls /etc/*.conf



IV. Usando el caracter ?

Podemos usar el signo de interrogación (?) Para que coincida exactamente con un carácter. El siguiente comando enumerará todos los directorios en /etc que tienen cuatro caracteres en su nombre:

ls -d /etc/ ????



X.Emparejar un conjunto de caracteres.

Los corchetes se pueden usar para especificar un rango o conjunto de caracteres para que coincidan. Ejecute el siguiente comando para enumerar los archivos en /etc/lvm/profile con los nombres que comienzan con ** l ** o m:

ls /etc/lvm/profile/[lm]*



Se puede Emparejar un rango de caracteres.El rango se especifica mediante el uso de secuencias adecuadas. El siguiente comando coincide con los nombres de archivo que comienzan con cualquier carácter del rango [a-c]: a, b y c:



XI. Salida de tuberia(Piping Output)


El pipe(|) envía la salida de un comando como entrada al siguiente. Ejecute el siguiente comando para enumerar el directorio ** /etc ** y envíe la salida a more:

ls /etc | more



También podemos numerar cada línea en la salida usando nl:

ls /etc | nl



Y ahora podemos construir un pipe usando múltiples pipe:

ls /etc | nl | more



XII. Prefijo con barra invertida

El carácter de barra diagonal inversa (o escape) () permite utilizar metacaracteres como caracteres normales.

Ejecutemos lo siguiente comando:

touch my file

Ahora enumere los archivos en el directorio:ls

Podemos observar  que se crearon dos archivos: file y my.

Ahora ejecutamos lo siguiente :

touch my\file
ls



Puede ver que de esta manera pudimos crear un archivo con un espacio en su nombre: my file



XIII. Cerrando con comillas simples


También podemos escapar de los caracteres encerrándolos entre comillas simples (').

Ingrese el siguiente comando:echo $PWD

Se emitió el valor de la variable $PWD, es decir, se ejecuto el comando PWD. Si realmente quisiéramos imprimir la cadena $PWD, podríamos enmascararla con comillas simples de la siguiente manera:

echo '$ PWD'



También podemos escapar de caracteres específicos con comillas simples. Primero, ejecutamos el comando  file en el archivo que creamos anteriormente, escapando del espacio con la barra invertida:

file my\ file

Ahora, ejecute el mismo comando, esta vez encerrando la barra diagonal inversa entre comillas simples:

file my'\' file


Podemos observar que ahora el comando file está buscando un archivo llamado my\, y el espacio ya no se escapa.



XIV. Cerrando con comillas dobles


Los metacaracteres de escape también se pueden lograr encerrando los caracteres entre comillas dobles ("), sin embargo, las comillas dobles todavía tratan la barra invertida, el signo de dólar y la comilla simple como caracteres especiales.

Ejecute los siguientes tres comandos para ver cómo funciona el escape con comillas dobles:

echo "$ LOGNAME"
echo "\ $ LOGNAME"
echo "'\' $ LOGNAME"





 

~$ Corre Linux Corre!

Iniciado por Kodeinfect

Respuestas: 2
Vistas: 3402
Último mensaje Febrero 24, 2013, 05:54:04 pm
por F0M3T
Navegar con Proxy "Tor" en GNU/Linux

Iniciado por Stiuvert

Respuestas: 1
Vistas: 3421
Último mensaje Julio 14, 2011, 01:29:53 pm
por Comandante Linux
Como expandir el disco duro de Kali Linux como máquina virtual

Iniciado por moolmool

Respuestas: 0
Vistas: 5098
Último mensaje Septiembre 07, 2017, 09:33:19 pm
por moolmool
Tutorial: Como instalar Linux "Ubuntu" junto a Windows

Iniciado por Stiuvert

Respuestas: 1
Vistas: 3498
Último mensaje Agosto 24, 2011, 02:25:17 pm
por Comandante Linux
[Mini guía] Instalar Team Viewer en Kali Linux para arquitecturas a 64 bits

Iniciado por Gabriela

Respuestas: 2
Vistas: 7080
Último mensaje Diciembre 27, 2015, 01:51:59 pm
por MagoAstral