A continuación se detallan ciertos comodines útiles al momento de listar archivos o directorios:
* Sustituye todos los caracteres a
partir del comodin
? Sustituye un solo caracter en la
posicion del comodin
[ ] Sustituye un solo caracter de la
lista especificada
[! ] Niega la condicion colocada dentro
de los [ ]
{ } Sustituye string o cadenas dentro de
las llaves.
Ejemplos:
Asterisco *
- Lista los archivo o directorios que
comiencen con “a”
johnny@debianJG:~/Documents/pruebas/abecedario$
ls a*
a
- Lista los archivo o directorios que
contengan al menos una “a”
johnny@debianJG:~/Documents/pruebas/abecedario$
ls *a*
a caballo casa elefante finca
hermana hermano mansion silla tortuga yegua
Interrogacion ?
- Lista los archivos o directorio donde
el segundo caracter sea cualquier letra.
johnny@debianJG:~/Documents/pruebas/abecedario$
ls h?r*
hermana hermano
Corchetes [ ]
- Lista los archivos o
directorio que tengan una sola letra y este entre la “a” y “d”.
Si no tenemos la variable de ambiente LC_COLLATE activada con valor
“C” el resultado no discriminara entre Mayuscula y Minuscula.
johnny@debianJG:~/Documents/pruebas/abecedario$
ls [a-d]
a A b B c C d
- Lista archivos o directorios donde
las primeras letras esten entre “a” y “d” sin discriminar
entre Mayuscula y minuscula.
johnny@debianJG:~/Documents/pruebas/abecedario$
ls [a-d]*
a A b B c C caballo casa d
Si queremos que al listar, en el
resultado nos diferencie entre Mayuscula y Minuscal debemos realzar
lo siguiente. Ver manual del grep,
en parte del manual nos dice los siguiente:
Within
a bracket expression, a range expression consists of two characters
separated by a hyphen. It matches any single character that
sorts between the two characters, inclusive, using the locale's
collating sequence and character set. For example, in the default C
locale, [a-d] is equivalent to [abcd]. Many locales sort characters
in dictionary order, and in these locales [a-d] is typically not
equivalent to [abcd]; it might be equivalent to [aBbCcDd],
for example. To obtain the traditional interpretation of bracket
expressions, you can use the C locale by setting the LC_ALL
environment variable to the value C.
...
LC_ALL, LC_COLLATE,
LANG
These
variables specify the locale for the LC_COLLATE category, which
determines the collating sequence used to interpret range expressions
like [a-z].
"Ver
man del comando locale
para mayor información"
Primero
comprobamos que la variable LC_COLLATE no este definida:
johnny@debianJG:~/Documents/pruebas/abecedario$set | grep LC_COLLATE
johnny@debianJG:~/Documents/pruebas/abecedario$env | grep LC_COLLATE
"Set
sirve para ver todas las variables locales y exportadas, Env
sirve para ver solo las variables exportadas. Como no se muestra la
variable LC_COLLATE, procedemos a definirla y exportala de la
siguiente forma:"
johnny@debianJG:~/Documents/pruebas/abecedario$
LC_COLLATE=C
johnny@debianJG:~/Documents/pruebas/abecedario$set | grep LC_COLLATE
LC_COLLATE=C
johnny@debianJG:~/Documents/pruebas/abecedario$
ls [a-d]
a b
c d
johnny@debianJG:~/Documents/pruebas/abecedario$env | grep LC_COLLATE
johnny@debianJG:~/Documents/pruebas/abecedario$export
LC_COLLATE
johnny@debianJG:~/Documents/pruebas/abecedario$env | grep LC_COLLATE
LC_COLLATE=C
johnny@debianJG:~/Documents/pruebas/abecedario$
ls [a-d]
a b
c d
johnny@debianJG:~/Documents/pruebas/abecedario$
ls [A-Z]
A B
C D E F G H I J K L M N O P Q R S T U V W X Y
Z
Negando Corchete [! ]
- Lista los archivos o directorios de una letra que no se una vocal
johnny@debianJG:~/Documents/pruebas/abecedario$
ls [!a,e,i,u,o,A,E,I,O,U]
B C
D F G H J K L M N P Q R S T V W X Y Z b c d f
g h j k l m n p q r s t v w x y z
Llaves { }
-
Lista los archivo o directorios que contenga el string o cadena “lo”,
“an”
johnny@debianJG:~/Documents/pruebas/abecedario$
ls *{lo,an}*
caballo
elefante hermana hermano hilo mansion
Esto
es similar a realizar el listado de la siguiente forma:
johnny@debianJG:~/Documents/pruebas/abecedario$
ls *lo* *an*
caballo
elefante hermana hermano hilo mansion
Genial, mejor explicado que en muchos sitios.
ResponderEliminarMuchas gracias paco
Eliminar