BASH+lister les fichiers d'un répertoire
Résolu
steffy74
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
steffy74 Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
steffy74 Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un répertoire dans lequel sont déposés des fichiers à traiter ensuite. Ces fichiers doivent être nommés de la façon suivante : AAA_D_<date>
J'ai un fichier qui contient une liste des "codes" à traiter afin de ne pas traiter n'importe quel fichier qui aurait été déposé la par erreur.
Je fais donc :
ex : dans le repertoire j'ai "AAA_D_200902.txt","BBB_D_2009.txt" et par erreur "nouveau document texte .txt"
pour AAA_D_200902.txt : code=AAA_D => correct (idem pour BBB_D_200902)
Le fichier qui comporte des espaces me pose probleme car le find découpe par rapport à l'espace (si j'ai bien compris)
Comment pourrais-je dans un premier temps déplacer les fichiers (dans un repertoire "poubelle" qui ne sont pas de la forme 3caracteres_1cararctere_<date> ??
Je ne suis pas sure d'avoir été très claire mais si quelqu'un avait un tuyau
Merci
J'ai un répertoire dans lequel sont déposés des fichiers à traiter ensuite. Ces fichiers doivent être nommés de la façon suivante : AAA_D_<date>
J'ai un fichier qui contient une liste des "codes" à traiter afin de ne pas traiter n'importe quel fichier qui aurait été déposé la par erreur.
Je fais donc :
for i in `find ./monRepertoire -type f ` do nom_fichier=$(echo $i | awk 'BEGIN{FS="/"} {print $3}') code = "$(echo $nom_fichier | awk -F_ '{print $1}')_$(echo $nom_fichier | awk -F_ '{print $2}')" done
ex : dans le repertoire j'ai "AAA_D_200902.txt","BBB_D_2009.txt" et par erreur "nouveau document texte .txt"
pour AAA_D_200902.txt : code=AAA_D => correct (idem pour BBB_D_200902)
Le fichier qui comporte des espaces me pose probleme car le find découpe par rapport à l'espace (si j'ai bien compris)
Comment pourrais-je dans un premier temps déplacer les fichiers (dans un repertoire "poubelle" qui ne sont pas de la forme 3caracteres_1cararctere_<date> ??
Je ne suis pas sure d'avoir été très claire mais si quelqu'un avait un tuyau
Merci
A voir également:
- Script shell lister les fichiers d'un répertoire
- Classic shell - Télécharger - Personnalisation
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Script vidéo youtube - Guide
- Comment ouvrir un fichier bin ? - Guide
2 réponses
Salut,
[rep]$ tree . |-- AAA_D_200902.txt |-- BBB_D_2009.txt |-- nouveau document texte .txt `-- poubelle 1 directory, 3 files [rep]$ for fich in "$(ls *.* | egrep -v '[A-Z]{3}_[A-Z]{1}_.*')"; do mv "$fich" poubelle/ ;done [rep]$ tree . |-- AAA_D_200902.txt |-- BBB_D_2009.txt `-- poubelle `-- nouveau document texte .txt 1 directory, 3 files [rep]$;-))