Lister fichiers commencant par et finissant p

Résolu/Fermé
djmic Messages postés 70 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 9 juillet 2010 - 29 déc. 2009 à 16:24
djmic Messages postés 70 Date d'inscription mardi 25 mars 2008 Statut Membre Dernière intervention 9 juillet 2010 - 29 déc. 2009 à 17:26
Bonjour à tous,

j'ai un petit soucis avec un listage de fichiers à faire à l'aide d'un script.


j'ai un script, il reçoit en paramètre 1 fichier dont l'extension est conf et 1 répertoire dans lequel il doit être sauvegardé.

le but du script est donc de sauvegardé le fichier .conf dans le répertoire fournit en paramètre, mais doit les renommer de telle sorte qu'il n'y ait pas d'écrasement de fichier.

exemple: je veux sauver les fichier named.conf dans le répertoires saves.
la première sauvegarde doit être nommée named1.conf, la second named2.conf, ....

mais pour celà je dois compter le nombre de sauvegardes du fichier pour pouvoir trouver le nombre suivant à donner.

j'ai essayer ceci (sans compter mais juste retourner les enregistrements)

# $1 est le fichier
#$2 est le répertoire

find $2 -maxdepth 1 -type f | grep -e '${1%.conf}[0-9]+\.conf' | gawk '{print $1}'



j'ai donc dans mon répertoire de travail mon script exo.sh , un fichier moi.conf, et un répertoire à l'intérieur duquel il existe les fichiers moi1.conf et moi11.conf.


avec l'appel suivant, je n'ai rien qui s'affiche, pourtant ca m'a l'air correct.

./exo.sh moi.conf saves



Si quelqu'un pouvait m'avancer, je le remercie d'avance.

6 réponses

Urielxx Messages postés 190 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 25 juin 2013 46
29 déc. 2009 à 17:20
J'aurais du préciser : '*' signifie zero fois ou plus. Donc en groupant [0-9][0-9]*, ça correspond à un chiffre, suivi de 'zero ou plus' chiffre. Ca revient à faire un [0-9]+, mais j'ai déjà eu des comportements bizarres du grep par le passé avec des "+" qui ne fonctionnaients pas.

Ta question est résolue à présent ;)
1