Veamos un script bash que cuenta los archivos ejecutables en una carpeta desde la variable de entorno PATH.
$ echo $PATH
Para obtener una lista de directorios, debe reemplazar cada dos puntos con espacio.
$ echo $PATH | sed 's/:/ /g'
Ahora iteremos a través de cada directorio usando el ciclo for como este:
mypath=$(echo $PATH | sed 's/:/ /g')
for directory in $mypath
do
done
Puede obtener los archivos en cada directorio usando el comando ls y guardarlo en una variable.
#!/bin/bash
path_dir=$(echo $PATH | sed 's/:/ /g')
total=0
for folder in $path_dir
do
files=$(ls $folder)
for file in $files
do
total=$[ $total + 1 ]
done
echo "$folder - $total"
total=0
done
Puede notar que algunos directorios no existen, no hay problema con esto, está bien.
Este es el poder de Regex. Estas pocas líneas de código cuentan todos los archivos en todos los directorios. Por supuesto, hay un comando de Linux para hacer eso muy fácil, pero aquí discutimos cómo emplear expresiones regulares en algo que puede usar. Puedes encontrar algunas ideas más útiles.
Esta puede no ser la forma más fácil de contar archivos, pero tratamos de trabajar con expresiones regulares.
Fuente: Linux regex
$ echo $PATH
Para obtener una lista de directorios, debe reemplazar cada dos puntos con espacio.
$ echo $PATH | sed 's/:/ /g'
Ahora iteremos a través de cada directorio usando el ciclo for como este:
mypath=$(echo $PATH | sed 's/:/ /g')
for directory in $mypath
do
done
Puede obtener los archivos en cada directorio usando el comando ls y guardarlo en una variable.
#!/bin/bash
path_dir=$(echo $PATH | sed 's/:/ /g')
total=0
for folder in $path_dir
do
files=$(ls $folder)
for file in $files
do
total=$[ $total + 1 ]
done
echo "$folder - $total"
total=0
done
Puede notar que algunos directorios no existen, no hay problema con esto, está bien.
Este es el poder de Regex. Estas pocas líneas de código cuentan todos los archivos en todos los directorios. Por supuesto, hay un comando de Linux para hacer eso muy fácil, pero aquí discutimos cómo emplear expresiones regulares en algo que puede usar. Puedes encontrar algunas ideas más útiles.
Esta puede no ser la forma más fácil de contar archivos, pero tratamos de trabajar con expresiones regulares.
Fuente: Linux regex