#!/bin/bashextension="png"# Le nom d'extension SANS le point qui la précèdenomRepert="/nom/du/répertoire"# ...dans lequel se trouvent les fichiers à traitertablFichs=("$nomRepert/"*"$extension")tablFichs=("${tablFichs[@]##*\/}")tmpIFS="$IFS"IFS=$'\n'maRegex='([0-9]{1,}\.'"$extension"')$'tablUniqs=($(\for fich in "${tablFichs[@]}";do[["$fich"=~ $maRegex]]&&\printf"%s\n""${fich//${BASH_REMATCH[1]}/}"done| sort -u
))for debutNom in "${tablUniqs[@]}";dochiffres=""maRegex="^$debutNom"'([0-9]{1,})\.'"$extension"for fich in "${tablFichs[@]}";do[["$fich"=~ $maRegex]]&&\chiffres+="${BASH_REMATCH[1]}"$'\n'donechiffres="$(sort -n <<<$chiffres| tr '\n'',')"printf"%s\n""$debutNom[${chiffres:1:-1}]"doneIFS="$tmpIFS"
La liste des noms des fichiers pour le test :
autrefichier_4.png
autrefichier_5.png
avec espace1.png
avec espace2.png
avec espace3.png
fic77.pnget445.png
fich77a7888.png
fich77a7.png
fichier42.png
un77autre_0.png
un77autre_3.png
unautre_055.png
unautre_155.png
unautre_50.png
unautre_56.png
Le retour du script en fonction de la liste ci-dessus :
autrefichier_[4,5]
avec espace[1,2,3]
fic77.pnget[445]
fich77a[7,7888]
fichier[42]
un77autre_[0,3]
unautre_[50,055,56,155]
... et dans ce royaume, ceux qui y voient un peu plus clair sont parfois très mal vus.
[^] # Re: celui-ci devrait mieux fonctionner
Posté par MicP . En réponse au message bash recuperer nom de plusieurs fichiers incrémentés. Évalué à 1. Dernière modification le 12 février 2019 à 07:37.
Le contenu de
monScript.sh:La liste des noms des fichiers pour le test :
Le retour du script en fonction de la liste ci-dessus :
... et dans ce royaume, ceux qui y voient un peu plus clair sont parfois très mal vus.