martes, 10 de septiembre de 2013

Los comodines en GNU/Linux

Resto de entradas con intenciones didácticas en la etiqueta Aprendizaje.

Como en los sistemas de Microsoft en GNU/Linux también podemos utilizar métodos abreviados para introducir datos. Con los conocidos como wildcards o comodines, y vienen a ser caracteres simples que sustituyen a otros más complejos o a cadenas de estos. Todo esto se entiende mejor utilizando ejemplos.

Asterisco: *
Sustituye todos los caracteres, cero o más, a partir del comodín. Ejemplos con el comando para listar archivos y directorios ls:
ls a* : lista los archivos o directorios que empiecen con la letra a. El asterisco sustituye cualquier carácter o caracteres a continuación de la letra a.
la *a* : lista los archivos o directorios que contengan al menos una a. El asterisco sustituye cualquier carácter o caracteres que se hallen antes o después de la letra a.
Interrogante: ?
Sustituye a un solo carácter, cualquiera que sea, en la posición del comodín
ls h?r* :  lista los archivos o directorios que contengan las letras dadas y donde el segundo carácter sea cualquier letra.
Corchetes: [ ]
Sustituye a un solo carácter de una lista especificada.
[abc] : el carácter puede ser a, b ó c.
[.,_] : puede ser un punto, una coma o un guión bajo
[a-z] : puede ser cualquier letra en minúsculas.
[0-9] : puede ser cualquier número.
[a-zA-Z] : puede ser cualquier letra, mayúscula o minúscula (no olvidemos que GNU/Linux las distingue siempre). 
[a-z0-9_] : puede ser cualquier letra minúscula, cualquier número o el guión bajo.
Exclamación dentro de corchetes: [! ]
El signo de exclamación después del corchete de apertura describe un carácter que NO está en la cadena dada. En otra posición dentro de esa cadena es un carácter más.
[!0-9] : representa cualquier carácter menos un número.
[!a-zA-Z] : representa cualquier carácter que NO sea una letra. 
[0-9!] : representa cualquier número o el signo de exclamación. Al no figurar como el primer carácter de la cadena la exclamación recibe un tratamiento de carácter convencional.
Llaves: { }
Sirven para expandir palabras que contengan cadenas de texto dadas, las cuales deben ser al menos dos. Utilicemos de nuevo el comando ls:
ls pe{lota,lotero,lazo} : lista archivos y directorios que contengan en su nombre las cadenas lota, lotero y lazo con pe delante. Ojo con que no haya espacios dentro de las llaves.
echo ca{mión,mino,cerola} :  forma tres palabras uniendo ca a cada cadena contenida entre las llaves (camióncamino y cacerola).
Vamos a dejarlo para ir asimilando la información. Hoy día la banda escocesa Simple Minds está poco menos que olvidada pero en 1989 se mostraba pletórica durante la grabación en vivo de este épico "Street fighting years".


4 comentarios:

  1. lo de la letra con el asterisco no me sale

    ResponderEliminar
  2. Buen contenido socio. 10/10. Enhorabuena.

    ResponderEliminar
  3. para un ejercicio intento ejuecutar ls /etc a* desde una carpeta creada por mi, y me arroja el mensaje ls: no se puede acceder a 'a*': no existe el fichero o el directorio. ¿que puedo hacer para listar los ficheros y directorios que inicien con aA?

    ResponderEliminar