regulares - regex ejemplos
Uso de expresiones regulares con ls (2)
Estoy tratando de usar ER (Expresiones regulares extendidas) con ls como ls .+/..+ .
Estoy intentando imprimir todos los archivos que contienen una extensión (sé que podría haber usado ls *.* , Pero quería intentar usar ER).
Cuando ejecuto ese código recibo este error: ls: .+..+: No such file or directory .
Estás confundiendo la expresión regular con los globos de shell . Si desea utilizar expresiones regulares para hacer coincidir los nombres de los archivos, puede hacerlo:
$ ls | egrep ''.+/..+''
No dice qué shell está utilizando, pero generalmente no admiten expresiones regulares de esa manera, aunque hay herramientas comunes de CLI de * nix ( grep , sed , etc.) que sí lo hacen.
Lo que soportan los shells como bash es el globbing , que usa algunos caracteres similares (por ejemplo, *) pero no es lo mismo.
Las versiones más recientes de bash tienen un operador de expresión regular, =~ :
for x in `ls`; do
if [[ $x =~ .+/..* ]]; then
echo $x;
fi;
done