Lister fichiers commencant par et finissant p
Résolu
                    
        
     
             
                    djmic
    
        
    
                    Messages postés
            
                
     
             
            73
        
            
                                    Statut
            Membre
                    
                -
                                     
djmic Messages postés 73 Statut Membre -
        djmic Messages postés 73 Statut Membre -
        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