5 Wildcards y Streams
wc _files/secuencias_bash.fastq
# 300 600 12934 secuencias_bash.fastq
Esto nos dice que el archivo cuenta con 300 lineas, 600 palabras y 12934 caracteres.
5.1 Caracteres y strings
Los caracteres
son unidades de información que se representan con símbolos. Pueden ser de varios tipos como alfanuméricos, números enteros, signos de puntuación. Varios caracteres son interpretados por la shell de manera especial. Estos se llaman caracteres especiales
, claro, y permiten desarrollar alguna lógica, dependiendo del contexto. Por ejemplo, algunos caracteres: @
#
.
?
!
,
/
\
>
~
a
µ
g
§
R
.
Cada caracter se asocia a una combinación diferente de teclas en el teclado del computador.
Los strings
son arreglos de caracteres. Esto quiere decir que son caracteres en conjunto y con un orden en particular. Por ejemplo el string pizza
tiene 4 diferentes caracteres: i
, p
, z
, a
. Diferentes combinaciones de caracteres pueden formar diferentes strings.
Creemos un string y luego imprimámoslo en la pantalla del Terminal. Escribe los siguientes comandos:
mi_primer_string="Taller de bioinformática"
echo $mi_primer_string
5.2 Wildcards
Los wildcards
o wild characters
son símbolos utilizados para representar uno o más caracteres. Se pueden utilizar con otros comandos para facilitar el procesamiento o búsqueda de archivos, directorios y datos en general.
Wildcard | Función |
---|---|
* |
Asocia uno o más caracteres especificados por el usuario, con caracteres en un string con el que se opera. |
? |
Asocia solo un caracter a la vez en un string. |
[ ] |
Asocia cuaquiera de los caracteres dentro en un string. |
El wildcard más usado es *
porque es muy versátil.
El wildcard *
me permitiría encontrar todos los archivos en una carpeta que tengan la palabra TESIS
en ellos. Primero generemos estos archivos:
cd ~/taller_unix/3_manejo_terminal
touch MI_TESIS.tex MI_TESIS_tutor2.tex TESIS.tex TESIS_YA_ACABATE.tex TESIS_finaaaaal.tex TESIS_final.tex TESIS_tutor1.tex TESIS_tutor2.tex a_reporte_01.txt b_reporte_02.txt c_reporte_03.txt z_reporte_30.txt
- Enlista todos los archivos que comiencen con “
TESIS
”. - Enlista todos los archivos que terminen con el string “
.tex
” - Buscar todos los archivos contengan la palabra “
TESIS"
pero con 3 caracteres desconocidos antes. - Buscar los archivos que terminen con el número 1 o 2 en su nombre antes de la extensión del archivo.
- Encontrar los archivos que terminen en dos números del 1 al 3 y del 0 al 2 antes del formato del archivo.
- Encontrar todos los archivos con este formato
?_reporte_[0-3][0-3].txt
- Encontrar todos los archivos que contengan por
a
oz
. - Borramos todos estor archivos que terminen en “.txt” y “.tex”
Puedes seguir repasando y aprendiendo de las expresiones regulares en la pagina de RegexOne.
5.3 Material suplementario
- RSG Ecuador. Scripts en Bash
- RSG Ecuador. Wildcards y Streams
- RSG Ecuador. Expresiones regulares (regex)
- Wildcard Selection in Bash