J'ai un script bash permettant d'extraire des pages d'un pages d'un pdf
(le script complet fait d'autres choses, mais j'ai extrait le problème ...).
Or il n'accepte pas les arguments avec espaces.
Le script :
#!/bin/bash
# $1 : document pdf
# $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire
les pages 1 à 7 ET 10
pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf"
Ceci fonctionne pour extraire les pages 1 à 5
./script document.pdf 1-5
Mais pas ceci pour les pages 1 et 5 :
./script document.pdf 1 5
Alors que la commande suivante ,elle, fonctionne :
pdftk document.pdf cat 1 5 output sortie.pdf
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Philippe Weill
Le 09/03/2017 à 12:39, Olivier V a écrit :
Bonjour, J'ai un script bash permettant d'extraire des pages d'un pages d'un pdf (le script complet fait d'autres choses, mais j'ai extrait le problème ...). Or il n'accepte pas les arguments avec espaces. Le script : #!/bin/bash # $1 : document pdf # $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10 pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf" Ceci fonctionne pour extraire les pages 1 à 5 ./script document.pdf 1-5 Mais pas ceci pour les pages 1 et 5 : ./script document.pdf 1 5 Alors que la commande suivante ,elle, fonctionne : pdftk document.pdf cat 1 5 output sortie.pdf Comment modifier mon script ?
normal dans ce cas là tu as trois arguments ./script document.pdf "1 5"
Merci. Olivier V
Le 09/03/2017 à 12:39, Olivier V a écrit :
Bonjour,
J'ai un script bash permettant d'extraire des pages d'un pages d'un pdf (le script complet fait d'autres choses, mais j'ai extrait
le problème ...).
Or il n'accepte pas les arguments avec espaces.
Le script :
#!/bin/bash
# $1 : document pdf
# $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10
pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf"
Ceci fonctionne pour extraire les pages 1 à 5
./script document.pdf 1-5
Mais pas ceci pour les pages 1 et 5 :
./script document.pdf 1 5
Alors que la commande suivante ,elle, fonctionne :
pdftk document.pdf cat 1 5 output sortie.pdf
Bonjour, J'ai un script bash permettant d'extraire des pages d'un pages d'un pdf (le script complet fait d'autres choses, mais j'ai extrait le problème ...). Or il n'accepte pas les arguments avec espaces. Le script : #!/bin/bash # $1 : document pdf # $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10 pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf" Ceci fonctionne pour extraire les pages 1 à 5 ./script document.pdf 1-5 Mais pas ceci pour les pages 1 et 5 : ./script document.pdf 1 5 Alors que la commande suivante ,elle, fonctionne : pdftk document.pdf cat 1 5 output sortie.pdf Comment modifier mon script ?
normal dans ce cas là tu as trois arguments ./script document.pdf "1 5"
Merci. Olivier V
Olivier V
Le 09/03/2017 à 13:34, Philippe Weill a écrit :
normal dans ce cas là tu as trois arguments ./script document.pdf "1 5"
Merci mais j'avais déjà testé ça et cela ne fonctionne pas. Voici la sortie $ 2pagesto1page_pages_pdftk document.pdf "7 7" document.pdf "7 7" Error: Unexpected text in page range end, here: 7 7 Exiting. Acceptable keywords, for example: "even" or "odd". To rotate pages, use: "north" "south" "east" "west" "left" "right" or "down" Errors encountered. No output created. Done. Input errors, so no output created.
Le 09/03/2017 à 13:34, Philippe Weill a écrit :
normal dans ce cas là tu as trois arguments
./script document.pdf "1 5"
Merci mais j'avais déjà testé ça et cela ne fonctionne pas.
Voici la sortie
$ 2pagesto1page_pages_pdftk document.pdf "7 7"
document.pdf "7 7"
Error: Unexpected text in page range end, here:
7 7
Exiting.
Acceptable keywords, for example: "even" or "odd".
To rotate pages, use: "north" "south" "east"
"west" "left" "right" or "down"
Errors encountered. No output created.
Done. Input errors, so no output created.
normal dans ce cas là tu as trois arguments ./script document.pdf "1 5"
Merci mais j'avais déjà testé ça et cela ne fonctionne pas. Voici la sortie $ 2pagesto1page_pages_pdftk document.pdf "7 7" document.pdf "7 7" Error: Unexpected text in page range end, here: 7 7 Exiting. Acceptable keywords, for example: "even" or "odd". To rotate pages, use: "north" "south" "east" "west" "left" "right" or "down" Errors encountered. No output created. Done. Input errors, so no output created.
Philippe Weill
Le 09/03/2017 à 13:41, Olivier V a écrit :
Le 09/03/2017 à 13:34, Philippe Weill a écrit :
normal dans ce cas là tu as trois arguments ./script document.pdf "1 5"
Merci mais j'avais déjà testé ça et cela ne fonctionne pas. Voici la sortie $ 2pagesto1page_pages_pdftk document.pdf "7 7" document.pdf "7 7" Error: Unexpected text in page range end, here: 7 7 Exiting. Acceptable keywords, for example: "even" or "odd". To rotate pages, use: "north" "south" "east" "west" "left" "right" or "down" Errors encountered. No output created. Done. Input errors, so no output created.
en fait j'avais pas fait attention dans ta ligne pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf" tu remplace par pdftk "$1" cat $2 output "${1%.pdf}_extrait.pdf" et là ca marche ~]$ bash -vx truc.sh Guide-informatique.pdf "1 3 5" #!/bin/bash # $1 : document pdf # $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10 pdftk "$1" cat $2 output "${1%.pdf}_extrait.pdf" + pdftk Guide-informatique.pdf cat 1 3 5 output Guide-informatique_extrait.pdf [ ~]$ pdfinfo Guide-informatique_extrait.pdf Creator: pdftk 2.02 - www.pdftk.com Producer: itext-paulo-155 (itextpdf.sf.net-lowagie.com) CreationDate: Thu Mar 9 14:31:39 2017 ModDate: Thu Mar 9 14:31:39 2017 Tagged: no Pages: 3 Encrypted: no Page size: 842 x 595 pts (A4) File size: 113154 bytes Optimized: no PDF version: 1.3
Le 09/03/2017 à 13:41, Olivier V a écrit :
Le 09/03/2017 à 13:34, Philippe Weill a écrit :
normal dans ce cas là tu as trois arguments
./script document.pdf "1 5"
Merci mais j'avais déjà testé ça et cela ne fonctionne pas.
Voici la sortie
$ 2pagesto1page_pages_pdftk document.pdf "7 7"
document.pdf "7 7"
Error: Unexpected text in page range end, here:
7 7
Exiting.
Acceptable keywords, for example: "even" or "odd".
To rotate pages, use: "north" "south" "east"
"west" "left" "right" or "down"
Errors encountered. No output created.
Done. Input errors, so no output created.
# $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10
pdftk "$1" cat $2 output "${1%.pdf}_extrait.pdf"
+ pdftk Guide-informatique.pdf cat 1 3 5 output Guide-informatique_extrait.pdf
[weill@ciclad2 ~]$ pdfinfo Guide-informatique_extrait.pdf
Creator: pdftk 2.02 - www.pdftk.com
Producer: itext-paulo-155 (itextpdf.sf.net-lowagie.com)
CreationDate: Thu Mar 9 14:31:39 2017
ModDate: Thu Mar 9 14:31:39 2017
Tagged: no
Pages: 3
Encrypted: no
Page size: 842 x 595 pts (A4)
File size: 113154 bytes
Optimized: no
PDF version: 1.3
normal dans ce cas là tu as trois arguments ./script document.pdf "1 5"
Merci mais j'avais déjà testé ça et cela ne fonctionne pas. Voici la sortie $ 2pagesto1page_pages_pdftk document.pdf "7 7" document.pdf "7 7" Error: Unexpected text in page range end, here: 7 7 Exiting. Acceptable keywords, for example: "even" or "odd". To rotate pages, use: "north" "south" "east" "west" "left" "right" or "down" Errors encountered. No output created. Done. Input errors, so no output created.
en fait j'avais pas fait attention dans ta ligne pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf" tu remplace par pdftk "$1" cat $2 output "${1%.pdf}_extrait.pdf" et là ca marche ~]$ bash -vx truc.sh Guide-informatique.pdf "1 3 5" #!/bin/bash # $1 : document pdf # $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10 pdftk "$1" cat $2 output "${1%.pdf}_extrait.pdf" + pdftk Guide-informatique.pdf cat 1 3 5 output Guide-informatique_extrait.pdf [ ~]$ pdfinfo Guide-informatique_extrait.pdf Creator: pdftk 2.02 - www.pdftk.com Producer: itext-paulo-155 (itextpdf.sf.net-lowagie.com) CreationDate: Thu Mar 9 14:31:39 2017 ModDate: Thu Mar 9 14:31:39 2017 Tagged: no Pages: 3 Encrypted: no Page size: 842 x 595 pts (A4) File size: 113154 bytes Optimized: no PDF version: 1.3
Francois Lafont
Hello, On 03/09/2017 12:39 PM, Olivier V wrote:
Le script : #!/bin/bash # $1 : document pdf # $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10 pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf"
^^^^ Je pense que, d'après ce que tu indiques, qu'il faut que tu enlèves les doubles quotes au niveau de $2.
Mais pas ceci pour les pages 1 et 5 : ./script document.pdf 1 5 Alors que la commande suivante ,elle, fonctionne : pdftk document.pdf cat 1 5 output sortie.pdf
Tu vois, juste après le cat, 1 et 5 forment 2 tokens au niveau de ton shell (2 arguments en somme). Dans ton script, avec le « cat "$2" » , cat verra 1 seul token. -- François Lafont
Hello,
On 03/09/2017 12:39 PM, Olivier V wrote:
Le script :
#!/bin/bash
# $1 : document pdf
# $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10
pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf"
^^^^
Je pense que, d'après ce que tu indiques, qu'il faut que tu enlèves
les doubles quotes au niveau de $2.
Mais pas ceci pour les pages 1 et 5 :
./script document.pdf 1 5
Alors que la commande suivante ,elle, fonctionne :
pdftk document.pdf cat 1 5 output sortie.pdf
Tu vois, juste après le cat, 1 et 5 forment 2 tokens au niveau
de ton shell (2 arguments en somme). Dans ton script, avec le
« cat "$2" » , cat verra 1 seul token.
Le script : #!/bin/bash # $1 : document pdf # $2 : pages à extraire sous la forme 1-7 10 par exemple pour extraire les pages 1 à 7 ET 10 pdftk "$1" cat "$2" output "${1%.pdf}_extrait.pdf"
^^^^ Je pense que, d'après ce que tu indiques, qu'il faut que tu enlèves les doubles quotes au niveau de $2.
Mais pas ceci pour les pages 1 et 5 : ./script document.pdf 1 5 Alors que la commande suivante ,elle, fonctionne : pdftk document.pdf cat 1 5 output sortie.pdf
Tu vois, juste après le cat, 1 et 5 forment 2 tokens au niveau de ton shell (2 arguments en somme). Dans ton script, avec le « cat "$2" » , cat verra 1 seul token. -- François Lafont