suite à une récupération de fichiers sur un zip
defectueux, je me
retrouve avec les fichiers récupérés en vrac sous
un nom arbitrairement
attribué par l'outil de récupération.
J'ai donc fait 2 petits scripts shell pour d'une
part remettre les fichiers
dans les bon répertoires et d'autre part pour
renommer correctement les fichiers
en question.
Chacun des fichiers contient les informations en
clair necessaires a ces opérations.
Le tri des fichiers par date se passe correctement
mais pas le renommage des fichiers.
Il est probable que je ne m'y prend pas bien.
Voici mon code, il attend en paramètres: la date
qui va permettre de créer le répertoire
et les noms des fichiers (variable)
#!/bin/bash
if [ $# -gt 1 ]
#si il y a plus d'un argument
then
REP=$1
echo creation du repertoire $REP
mkdir $REP #on cree le repertoire
#j'enleve le premier paramètre
shift
# je parcours les paramètres restants (noms des
fichiers)
for arg in $@
do #on copie tous les fichiers dans le repertoire
cree
NOMFIC=""
if grep -q "type.*001" test/$arg;
then
NOMFIC=type001.dbf
elif grep -q "type.*002" test/$arg;
then
NOMFIC=type002.dbf
elif grep -q "type.*003" test/$arg;
then
NOMFIC=type003.dbf
elif grep -q "type.*051" test/$arg;
then
NOMFIC=type051.dbf
elif grep -q "type.*151" test/$arg;
then
NOMFIC=type151.dbf
else
NOMFIC=$arg
fi
cp test/$arg $REP/$NOMFIC
done
else
exit
fi
Qu'en pensez vous?
Merci
--
Glut
# un petit exemple de ce que tu mets comme ligne d'execution
Posté par fearan . Évalué à 2.
"${var}toto" fais bien plus souvent ce que l'on veut que $vartoto
ensuite je quel est le résultat? savoir comment ça plante aide grandement au débuggage...
et les commandes utilisée ( grep -q "type.*051" test/$arg ) renvoient elles bien le bon résultat ?
est ce que tu as des fichier avec des espaces dans leur nom? si c'est le cas tu risque d'avoir du mal a faire fonctionner ce script si c'est le cas
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: un petit exemple de ce que tu mets comme ligne d'execution
Posté par glut . Évalué à 1.
en fait les fichiers ne sont pas renommés correctement,il semble que le contenu de ma variable $NOMFIC n'est pas correct.
Il n'y a pas d'espace dans les noms de fichiers ils portent tous un nom du style f154782.dbf
Exemple de paramètres reçus par le script: "20050102 f123456.dbf f456789.dfb f987654.dbf" ( le nombre de fichiers dbf peut être variable)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.