Script gestion de fichier pdf

Résolu
ibliss11 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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   Statut Modérateur Dernière intervention   4 896
 
Salut,

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

man bash => Remplacement des paramètres

:-))
0
dindoun Messages postés 1028 Date d'inscription   Statut Membre Dernière intervention   135
 
vois aussi

basename
dirname
cp
wget
0
ibliss11 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Modérateur Dernière intervention   4 896
 
[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   Statut Membre Dernière intervention  
 
Ç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   Statut Modérateur Dernière intervention   4 896
 

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