Expansión con llaves

Quizás la expansión más extraña es la llamada expansión con llaves. Con ella, puedes crear múltiples cadenas de texto a partir de un patrón que contenga llaves. Aquí tienes un ejemplo:

echo Front-{A,B,C}-Back

Nos daría una salida tal como:

Front-A-Back Front-B-Back Front-C-Back

Los patrones a expandir con llaves pueden contener un prefijo llamado preamble (preámbulo) y un sufijo llamado postcript (postdata). La expresión entre llaves puede contener una lista de cadenas separadas por comas o un rango de números enteros o caracteres individuales. El patrón no debe contener espacios en blanco. Aquí hay un ejemplo usando un rango de números enteros:

echo Number_{1..5}

Que imprime la siguiente salida

Number_1 Number_2 Number_3 Number_4 Number_5

Los números enteros también pueden tener ceros a la izquierda así:

echo {01..15}
echo {001..15}

Imprimiendo como salidas respectivamente:

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015

Un rango de letras en orden inverso:

echo {Z..A}

Mostrando:

Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

Las expansiones con llaves pueden ser anidadas:

echo a{A{1,2},B{3,4}}b

Lo que daría una salida tal como:

aA1b aA2b aB3b aB4b

¿Y para qué sirve esto? La aplicación más común es hacer listas de archivos o directorios a crear. Por ejemplo, si fuésemos fotógrafos con una gran colección de imágenes que queremos organizar en años y meses, la primera cosa que deberíamos hacer es crear una serie de directorios nombrados en formato numérico “Año-Mes”. De esta forma, los directorios se ordenarán cronológicamente. Podríamos escribir la lista completa de directorios, pero sería un montón de trabajo y sería muy fácil equivocarnos. En lugar de eso, podríamos hacer esto:

mkdir Fotos
cd Fotos
mkdir {2007..2009}-{01..12}
ls

Nos mostraría lo siguiente:

2007-01 2007-07 2008-01 2008-07 2009-01 2009-07
2007-02 2007-08 2008-02 2008-08 2009-02 2009-08
2007-03 2007-09 2008-03 2008-09 2009-03 2009-09
2007-04 2007-10 2008-04 2008-10 2009-04 2009-10
2007-05 2007-11 2008-05 2008-11 2009-05 2009-11
2007-06 2007-12 2008-06 2008-12 2009-06 2009-12

Recorda apoyarnos en nuestras redes para poder seguir adelante con todo lo que implica PatoJAD es un proyecto que poco a poco crece e intenta estar al lado de todos de los usuarios dándoles dia a dia herramientas o funcionalidades. Mostranos tu apoyo con pequeños gestos, desactivando el bloqueador de anuncios, apoyándonos en las redes sociales, donando o compartiendo el contenido, esto solo es posible gracias a cada lector y cada persona que demuestra su agradecimiento

PatoJAD
Desarrollador

Sobre mi no hay mucho para decir, me dedico a desarrollar en una empresa de telecomunicaciones, utilizo GNU/Linux desde el 2.012 y hace años que es mi Sistema Operativo main. Soy una persona que busca crecer profesionalmente sin dejar de divertirse y hacer lo que me gusta. Siempre digo que cuando un proyecto sale es importante agradecer, por lo cual les recomiendo a todos leer la seccion Agreadecimientos en la cual me tomé un tiempito para poder agradecer a todos y cada uno de los que hicieron posible todo esto.


Comentarios

Busqueda


Donar

Todo lo que realizamos en el softwarelibre (colaboraciones, desarrollos, blogs, etc.) lo realizamos por amor al mismo y no pedimos nada a cambio por nuestros servicios comunitarios.

Sin embargo muchas personas desean colaborar para poder mejorar los mismos y personalmente ofrezco esta opcion aunque aconsejo fuertemente que se done en proyectos mas importantes como KDE y demas...

Sitios Amigos

Publicaciones
282