OVH Cloud OVH Cloud

[bash] manipuler des noms de fichiers

2 réponses
Avatar
bricem13
Bonjour

je souhaite recoller des fichiers pdf grâce à un script bash et pdftk.

Pour pdftk la syntaxe est:
pdftk file1.pdf file2.pdf file3.pdf cat output output.pdf

ce qui assemble les 3 fichiers dans l'ordre en un fichier output.pdf.

le pbm vient de mes noms de fichiers qui en général comportent une
chaîne de caractères, (éventuellement un _), un numéro (qui ne
commence pas toujours par 0), et l'extension .pdf. certains contenant
une autre chaîne de caractères avant l'extension. Il me faut donc un
script permettant d'isoler les numéros et de classer les noms de
fichiers selon les numéros dans la syntaxe de pdftk.

Cette manip est inconnue pour moi!!


Une idée?

Merci

Brice

2 réponses

Avatar
jean-jacques cavelier
Message d'origine <<<<<<<<<<<<<<<<<<



















Le 27/10/04, à 11:26:27 h, (Brice) vous a écrit sur le
sujet suivant [bash] manipuler des noms de fichiers:


Bonjour

je souhaite recoller des fichiers pdf grâce à un script bash et pdftk.

Pour pdftk la syntaxe est:
pdftk file1.pdf file2.pdf file3.pdf cat output output.pdf

ce qui assemble les 3 fichiers dans l'ordre en un fichier output.pdf.

Cette manip est inconnue pour moi!!
Bonjour.

Sur leur site ils donnent la manière e procéder par wildcart.
--
jean-jacques cavelier
E-Mail:


















Avatar
Stephane Chazelas
2004-10-27, 02:26(-07), Brice:
[...]
Pour pdftk la syntaxe est:
pdftk file1.pdf file2.pdf file3.pdf cat output output.pdf

ce qui assemble les 3 fichiers dans l'ordre en un fichier output.pdf.

le pbm vient de mes noms de fichiers qui en général comportent une
chaîne de caractères, (éventuellement un _), un numéro (qui ne
commence pas toujours par 0), et l'extension .pdf. certains contenant
une autre chaîne de caractères avant l'extension. Il me faut donc un
script permettant d'isoler les numéros et de classer les noms de
fichiers selon les numéros dans la syntaxe de pdftk.
[...]


Et quelle est la question ?

Que doit faire le script ?

$ ton-script file output
doit faire

$ pdftk file1.pdf file2.pdf file3.pdf cat output output.pdf

c'est ca ?

Dans ce cas:

#! /bin/zsh -
[[ ${1?} = /* ]] || 1=./$1
[[ ${2?} = /* ]] || 2=./$2
exec pdftk $1<1->.pdf(n-.) cat output $2.pdf


${1?}: pour que zsh renvoie une erreur si $1 n'est pas defini
[[ ... ]] || 1=...: pour eviter d'avoir des problemes avec les
noms de fichiers qui s'appeleraient "cat" ou commenceraient par
"-" vu que pdftk a pas l'air d'avoir une syntax de ligne de
commande tres coherente.
exec: pour eviter de creer un nouveau processus.
<1->: tout nombre a partir de 1 (ca marche aussi pour 01)
(n): trier numeriquement (pour que 12 soit avant 3)
(-.): seulement selectionner les fichiers reguliers ou les liens
vers fichiers reguliers (pas les repertoires par exemple)

--
Stephane