35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/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
|