diff --git a/README.md b/README.md index 7d057ee..4b2533b 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ En qualsevol d'aquests casos, l'esforç és molt superior al benefici i, en el m ## Solució -He desenvolupat `mass-diz.sh`, un *script* en `bash` que ha de donar resposta a aquesta necessitat, com a eina de suport pròpia i de qualsevol altre `SysOp`. +He desenvolupat `mass-diz.sh`[^1], un *script* en `bash` que ha de donar resposta a aquesta necessitat, com a eina de suport pròpia i de qualsevol altre `SysOp`. `mass-diz.sh` empaqueta en un `ZIP` els diferents elements i els annexes necessàris, incloent-hi el `FILE_ID.DIZ` associat que es genera durant l'execució. @@ -50,8 +50,8 @@ P.ex. `Daredevil Born Again - Season 1 - Chapter 2 - 1080p - 2025.mkv` - **Variables Inicials**: L'*script* parteix d'un conjunt de variables fixes, que s'inicialitzen durant la seva execució: - - `DISCLAIMER`: El nom del fitxer[^1] informatiu de descàrrec quan l'element és un contingut sensible. - - `DEMO`: El nom del fitxer [^1] que fa les funciones de publicitat/promoció de `EOTB`. + - `DISCLAIMER`: El nom del fitxer[^2] informatiu de descàrrec quan l'element és un contingut sensible. + - `DEMO`: El nom del fitxer [^2] que fa les funciones de publicitat/promoció de `EOTB`. - `SEPARATOR`: El caràcter o conjunt de caràcters que identifiquen els diferents camps de la descripció de l'element. - `FILE_ID`: S'alimenta automàticament durant l'execució de l'*script*. - `ZIPFILE`: El nom base que tindrà el fitxer `ZIP` resultant. @@ -90,4 +90,5 @@ En el `path` on s'executa: `` -[^1]: El fitxer ha d'estar present a la ruta on s'executi l'*script*. \ No newline at end of file +[^1]: He creat un `count.sh`, un *script* de suport que demana un caràcter i compte el número de cops que apareix aquest caràcter en el nom dels fitxers existents a la ruta d'execució. Útil per a depurar els fitxers abans d'executir `mass-diz.sh`. +[^2]: El fitxer ha d'estar present a la ruta on s'executi l'*script*. \ No newline at end of file diff --git a/count.sh b/count.sh new file mode 100755 index 0000000..3d52962 --- /dev/null +++ b/count.sh @@ -0,0 +1,34 @@ +#!/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