viele *png-dateien in pdf umwandeln

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

viele *png-dateien in pdf umwandeln

Beitrag von michaa7 » 09.12.2014 13:31:52

Um eine broschüre aus scanns zusammenzubauen möchte ich png_s zunächst in pdf wandeln, für einzelne seiten geht das so:

Code: Alles auswählen

$ convert foo.jpg foo.pdf
Allerdings möcht ich das nicht 60 mal händisch eingeben müssen. Wie läßt sich das eleganter bewerkstelligen, unter beibehaltung des names, nur mit anderer extension. Ich höre schon "mach dir halt ein script", nungut, genau daran hapert es, wie das ablaufen sollte ist klar, aber scripttechnisch bin ich vollkommen unterbelichtet.

Ablauf:

suche in verzeichnis nach foo.png, wenn wenn foo.pdf existiert, suche bar.png, sonst $ convert foo.png foo.pdf .

Die scanns sind nach dem schema seiten-nr.png bennannt, viele fortlaufend, aber es gibt ein paar lücken.
gruß

michaa7

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

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

Re: viele *png-dateien in pdf umwandeln

Beitrag von Cae » 09.12.2014 14:00:58

Das geht ziemlich genau so, wie du im Pseudocode schreibst:

Code: Alles auswählen

$ for file in *.png; do base="${file%.*}"; test -e "$base.pdf" || convert "$base.png" "$base.pdf"; done
Mit ${file%.*} schneide ich die Dateierweiterung ab:

Code: Alles auswählen

$ a=/foo/bar.baz.boom
$ echo ${a%.*}
/foo/bar/baz.boom
$ 
Der Code oben beachtet nur die Dateien im aktuellen Verzeichnis, falls es rekursiv sein soll, waere eine Loesung mit find(1) moeglich, aber weniger simpel.

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

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: viele *png-dateien in pdf umwandeln

Beitrag von ThorstenS » 09.12.2014 14:19:15

kürzere Schreibweise ;-)

Code: Alles auswählen

for file in *png; do [ -e ${file%.*}.pdf ] || convert ${file%.*}.{png,pdf}; done
nicht kürzer aber exotischer:

Code: Alles auswählen

for file in *png; do [ -e ${file::-3}pdf ] || convert ${file::-3}{png,pdf}; done
und gleich kommen die Stimmen, die sagen „und was ist mit Leerzeichen im Namen?“ ;-)

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

Re: viele *png-dateien in pdf umwandeln

Beitrag von Cae » 09.12.2014 15:13:10

Deins tut aber nur in der Bash :P.

Expandieren a la {a,b} ist eine Bash-Erweiterung, Herumschneiden mit ${a#...} (und ## und % und %%) laeuft aber auch in z.B. der Dash.

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

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: viele *png-dateien in pdf umwandeln

Beitrag von ThorstenS » 10.12.2014 07:51:43

Natürlich hast du recht, den Hinweis hatte ich geben müssen.
Aber: ich liebe bashism :mrgreen:

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

Re: viele *png-dateien in pdf umwandeln

Beitrag von michaa7 » 13.12.2014 20:41:10

Danke euch beiden, hat prima geklappt. Habe Cae's version benutzt, aber mal alle drei in meine sammlung aufgenommen.
gruß

michaa7

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

Antworten