Lister fichiers commencant par et finissant p
Résolu
djmic
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
djmic Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
djmic Messages postés 70 Date d'inscription Statut Membre Dernière intervention -
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)
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.
Si quelqu'un pouvait m'avancer, je le remercie d'avance.
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.
A voir également:
- Linux lister fichier commençant par
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
6 réponses
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 ;)
Ta question est résolue à présent ;)
L'erreur est dans ton grep, qui ne renvoie rien :
grep -e '${1%.conf}[0-9]+\.conf'
Pourquoi ? Parce que le '${1%.conf}' n'est pas interprété car il est entre quotes simples [']. Essaie avec des doubles-quotes ["] plutôt, ces dernières permettent l'interprétation des variables :
grep -e "${1%.conf}[0-9]+\.conf"
Ca devrait aller mieux.
grep -e '${1%.conf}[0-9]+\.conf'
Pourquoi ? Parce que le '${1%.conf}' n'est pas interprété car il est entre quotes simples [']. Essaie avec des doubles-quotes ["] plutôt, ces dernières permettent l'interprétation des variables :
grep -e "${1%.conf}[0-9]+\.conf"
Ca devrait aller mieux.
J'ai déjà eu du mal avec le "+" dans les grep...
Essaie ça pour voir :
grep -e "${1%.conf}[0-9][0-9]*\.conf"
Et marque le post en résolu si ça fonctionne (j'y crois ;) )
Essaie ça pour voir :
grep -e "${1%.conf}[0-9][0-9]*\.conf"
Et marque le post en résolu si ça fonctionne (j'y crois ;) )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question