#!/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