gs + inputfiles

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
michaa7
Beiträge: 4953
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

gs + inputfiles

Beitrag von michaa7 » 09.12.2014 13:49:50

Ich verwende
$ gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=Ziel.pdf Datei1.pdf Datei2.pdf...
um einzelne pdf seiten zu einer broschüre zu verbinden. Bei vielen seiten ist es jedoch mühsam alle input seiten einzeln eingeben zu müssen:

1: kann man einen bereich von seiten (range) eingeben wie etwas 13.pdf-25.pdf ?

2. Ist das mit einzelseiten kombinierbar: 02.pdf 04.pdf 13.pdf-25.pdf 27.pdf ?


Wenn nicht, gäbe es alternativen?
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

JTH
Moderator
Beiträge: 3077
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: gs + inputfiles

Beitrag von JTH » 09.12.2014 14:05:05

Funktioniert es etwa so? [1]

Code: Alles auswählen

$ gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=Ziel.pdf Datei{1..10}.pdf Extra_Datei1.pdf Datei{11,12}.pdf Extra_Datei{2..5}.pdf Datei{13..20}.pdf
[1] https://www.gnu.org/software/bash/manua ... nsion.html
Manchmal bekannt als Just (another) Terminal Hacker.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: gs + inputfiles

Beitrag von Cae » 09.12.2014 14:11:00

Ich wuerd's auf der Kommandozeile expandieren lassen und dazu Wildcards wie * und ? sowie fuer Gruppen [] verwenden. Ausserdem kann die Bash auch mit {a..b} eine numerische Folge generieren.

Zum Beispiel:

Code: Alles auswählen

## alle Testdateien
$ ls foo-*
foo-00  foo-02  foo-04  foo-06  foo-08  foo-10  foo-12  foo-14  foo-16  foo-18
foo-01  foo-03  foo-05  foo-07  foo-09  foo-11  foo-13  foo-15  foo-17  foo-19
$ ls foo-0[234]
foo-02  foo-03  foo-04
$ ls foo-[01][234]
foo-02  foo-03  foo-04  foo-12  foo-13  foo-14
## 10er-Stelle ist beliebig
$ ls foo-?3
foo-03  foo-13
$ ls foo-{06..09}
foo-06  foo-07  foo-08  foo-09
## funktioniert auch durch Uebertraege (... 8, 9, 10...) korrekt
$ ls foo-{07..12}
foo-07  foo-08  foo-09  foo-10  foo-11  foo-12
## nur ungerade Seiten (jede 2.) ausgeben
$ ls foo-{07..12..2}
foo-07  foo-09  foo-11
$ 
Konkret fuer deinen Fall:

Code: Alles auswählen

$ gs ... 0[24].pdf {13..25}.pdf 27.pdf
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

michaa7
Beiträge: 4953
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: gs + inputfiles

Beitrag von michaa7 » 13.12.2014 21:00:21

Danke, hat auch super geklappt. War auch sehr gut erklärt wie das mit dem gruppieren, den führenden nullen und den einzelseiten funktioniert. Das hat mir sehr geholfen. Ging dann ruck-zuck.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: gs + inputfiles

Beitrag von Meillo » 13.12.2014 22:50:19

Ansonsten die Dateinamen einfach in der passenden Auswahl und Reihenfolge in eine Datei schreiben und mittels `cat datei` einfuegen. ;-)
Use ed once in a while!

Antworten