Script gestion de fichier pdf

Résolu/Fermé
ibliss11 Messages postés 49 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 2 juillet 2012 - 20 nov. 2009 à 14:06
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 20 nov. 2009 à 18:27
Bonjour à tous et merci d'être toujours là quand on a besoin de vous,

Ça fait maintenant presque 1 an que j'ai migré vers linux.
J'ai compris que l'utilité des scripts était d'automatiser certaines tâches.
Je n'en ai jamais écrit jusqu'à maintenant, je me suis seulement documenté un peu sur le sujet.

Dans ma branche, je suis amené à télécharger beaucoup d'articles en pdf.

Ce que je voudrais c'est un script qui me créer un répertoire portant le même nom que le fichier pdf (sans l'extension biensûr), copie le fichier pdf dans le répertoire créé, et enfin me fasse une copie de ce fichier pdf toujours dans le répertoire créé (j'espère que je suis clair.. en tous cas j'essaye).

Je reprécise que je n'ai encore jamais écrit de script, j'ai juste pensé que cela me permettrait d'apprendre dans la mesure ou ça ne me semble pas très compliqué pour vous, et en plus j'en aurais l'utilité au quotidien.

Merci d'avance pour vous réponses.

PS : je ne demande pas de faire le travail à ma place mais au moins de me donner des pistes car je vois les commandes à utiliser mais je ne vois pas comment je peux extraire le nom du fichier pdf.
A voir également:

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 nov. 2009 à 14:34
Salut,

[tmpfs]$ A=fich1.pdf
[tmpfs]$ echo ${A%.*}
fich1
[tmpfs]$

man bash => Remplacement des paramètres

:-))
0
dindoun Messages postés 1027 Date d'inscription mercredi 23 janvier 2008 Statut Membre Dernière intervention 17 février 2017 135
20 nov. 2009 à 14:37
vois aussi

basename
dirname
cp
wget
0
ibliss11 Messages postés 49 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 2 juillet 2012
20 nov. 2009 à 15:55
Je suis désolé mais je ne comprends rien...

Je pense que je me suis surrestimé

Je ne vous en voudrais pas si vous ne me répondez pas, je vais chercher de mon côté.

Merci
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 nov. 2009 à 16:43
[tmpfs]$ tree
.
|-- fich1.pdf
|-- fich2.pdf
|-- fich3.pdf
|-- fich4.pdf
|-- fich5.pdf
|-- foo.sh
`-- foo.sh~

0 directories, 7 files

[tmpfs]$ cat foo.sh
#! /bin/sh

#set -xv

for i in *.pdf
do
mkdir "${i%.*}" &&\
cp "${i}" "${i%.*}/${i}" &&\
mv "${i}" "${i%.*}/${i}_copie"
done

[tmpfs]$ ./foo.sh

[tmpfs]$ tree
.
|-- fich1
|   |-- fich1.pdf
|   `-- fich1.pdf_copie
|-- fich2
|   |-- fich2.pdf
|   `-- fich2.pdf_copie
|-- fich3
|   |-- fich3.pdf
|   `-- fich3.pdf_copie
|-- fich4
|   |-- fich4.pdf
|   `-- fich4.pdf_copie
|-- fich5
|   |-- fich5.pdf
|   `-- fich5.pdf_copie
|-- foo.sh
`-- foo.sh~

5 directories, 12 files

[tmpfs]$

;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ibliss11 Messages postés 49 Date d'inscription lundi 30 mars 2009 Statut Membre Dernière intervention 2 juillet 2012
20 nov. 2009 à 17:12
Ça marche du feu de Dieu !... il ne me reste plus qu'à comprendre maintenant, ça va me permettre d'apprendre et de progresser un peu.

Une fois de plus merci Jipicy.
Entre mes problèmes de son, d'impression, de config et j'en passe... t'es toujours là pour une réponse.

C'est dans des moments comme ça que je ne regrette pas d'avoir migré.
Les linuxiens disent que "la liberté a un prix", mais ils oublient qu'on peut toujours compter sur vous pour une bonne remise ;-)

Encore merci.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
20 nov. 2009 à 18:27

for i in *.pdf
Pour chaque fichier dans la liste

do
Faire

mkdir "${i%.*}"
On crée un répertoire en enlevant dans le nom issue de la variable que la partie correspondant au motif après le "%" (on enlève donc le point et tout ce qui suit)

&&\
Si la commande précédente s'est déroulée sans ennui, on continue (l'anti slash à la fin indique que la commande se poursuit à la ligne suivante)

cp "${i}" "${i%.*}/${i}"
On copie donc la variable "$i" dans le répertoire "${i%.*}/" (le même nom que la variable mais amputée de son extension) avec le même nom "${i}" (en fait le nom aurait pu être omis)

&&\
Idem

mv "${i}" "${i%.*}/${i}_copie"
Et pour finir on transfère le fichier dans le répertoire nouvellement créé en rajoutant '_copie" à son nom initial.

done
Fin

0