bash-mass-diz-zip/count.sh

35 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
# 1. Preguntar a l'usuari por la cadena a comptar i emmagatzemar-la
echo -n "Introdueix el caràcter o conjunt de caràcters a cercar: "
read CADENA
# 2. Validar que la cadena no estigui buida
if [ -z "$CADENA" ]; then
echo "Error: No s'ha informat cap cadena."
exit 1
fi
echo "" # Afegeix un salt de línia per claretat
echo "Cercant ocurrències de '$CADENA' en els noms de fitxer:"
echo "---------------------------------------------------------"
# 3. Iterar sobre tots els elements del directori actual
for file in *; do
# 4. Comprovar que l'element és un fitxer (i no un directori)
if [ -f "$file" ]; then
# 5. Comptar les ocurrències de CADENA en el nom del fitxer
# - echo "$file": Passa el *nom* del fitxer (la cadena) a grep.
# - grep -F: Cerca la CADENA com una cadena de text literal (fixed string),
# no com una expressió regular.
# - grep -o: Imprimeix només la part coincident, cada una a una línia nova.
# - wc -l: Compta el número total de línies, que equival al número d'ocurrències.
count=$(echo "$file" | grep -F -o "$CADENA" | wc -l)
# 6. Imprimeix el nom del fitxer i el recompte
echo "$file: $count"
fi
done