[Shell] Traitement liste de fichiers
Résolu
yaLINUXNUL
Messages postés
45
Statut
Membre
-
yaLINUXNUL Messages postés 45 Statut Membre -
yaLINUXNUL Messages postés 45 Statut Membre -
Bonjour,
J'ai cherché et je ne trouve pas comment faire. J'ai passé l'après midi à rechercher des solutions.
----- Dans une variable, j'ai une liste non fini de fichiers séparés par le caractère ','
var6=aa.pdf,bb.pdf,cc.pdf,aa.pdf,....
ou
var6=aa.pdf
----- Les fichiers qui ne sont pas en doublon sont distribués dans des répertoires du nom.
_______________
J'ai une solution mais elle permet de travailler sur une liste fixe et ensuite il faut que j'analyse les doublons.
var7=`echo $var6 | cut -d"," -f1`
var8=`echo $var6 | cut -d"," -f2`
var9=`echo $var6 | cut -d"," -f3`
echo $var7
echo $var8
echo $var9
_______________
Y a t il une solution pour
1) supprimer les doublons (option)
2) Lancer la distribution pour chaque fichier de la liste qu'elle que soit le nombre de fichier dans la liste
du genre
for i in liste
do
if [$i eg aa.pdf]
then
{
mv $i /home/sortie1/$i
}
else
{
if [$i eg aa.pdf]
then
{
mv $i /home/sortie2/$i
}
fi
fi
done
Merci de bien vouloir m'aider
cordialement
J'ai cherché et je ne trouve pas comment faire. J'ai passé l'après midi à rechercher des solutions.
----- Dans une variable, j'ai une liste non fini de fichiers séparés par le caractère ','
var6=aa.pdf,bb.pdf,cc.pdf,aa.pdf,....
ou
var6=aa.pdf
----- Les fichiers qui ne sont pas en doublon sont distribués dans des répertoires du nom.
_______________
J'ai une solution mais elle permet de travailler sur une liste fixe et ensuite il faut que j'analyse les doublons.
var7=`echo $var6 | cut -d"," -f1`
var8=`echo $var6 | cut -d"," -f2`
var9=`echo $var6 | cut -d"," -f3`
echo $var7
echo $var8
echo $var9
_______________
Y a t il une solution pour
1) supprimer les doublons (option)
2) Lancer la distribution pour chaque fichier de la liste qu'elle que soit le nombre de fichier dans la liste
du genre
for i in liste
do
if [$i eg aa.pdf]
then
{
mv $i /home/sortie1/$i
}
else
{
if [$i eg aa.pdf]
then
{
mv $i /home/sortie2/$i
}
fi
fi
done
Merci de bien vouloir m'aider
cordialement
A voir également:
- [Shell] Traitement liste de fichiers
- Liste déroulante excel - Guide
- Classic shell - Télécharger - Personnalisation
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Liste code ascii - Guide
3 réponses
Salut,
J'ai pas très bien compris ce que tu voulais faire exactement ;-\
Quoi qu'il en soit, je te donne des pistes avec ce que j'ai cru comprendre...
J'ai pas très bien compris ce que tu voulais faire exactement ;-\
Quoi qu'il en soit, je te donne des pistes avec ce que j'ai cru comprendre...
Transformer ta variable en tableau
$ var6="aa.pdf,bb.pdf,cc.pdf,aa.pdf"
$ declare -a var6=( ${var6//,/ } )
Afficher les éléments du tableau
$ echo ${var6[@]}
aa.pdf bb.pdf cc.pdf aa.pdf
Afficher le 1er élément du tabeau
$ echo ${var6[0]}
aa.pdf
Le 2nd
$ echo ${var6[1]}
bb.pdf
Le 3ème
$ echo ${var6[2]}
cc.pdf
Le 4ème
$ echo ${var6[3]}
aa.pdf
Nombre d'élements du tableau
$ echo ${#var6[@]}
4
Afficher les éléments du tableau triés par ordre alphabétique
$ for i in ${var6[*]}; do echo $i;done | sort
aa.pdf
aa.pdf
bb.pdf
cc.pdf
Idem mais en cas de doublon n'en afficher qu'un
$ for i in ${var6[*]}; do echo $i;done | sort -u
aa.pdf
bb.pdf
cc.pdf
Idem mais en excluant les doublons
$ for i in ${var6[*]}; do echo $i;done | sort | uniq -u
bb.pdf
cc.pdf
$ ;-))