Verwendung von Platzhalter-Eingabedateien und Speichern der Ausgabe als <input /> + Suffix

1248
StackAbstraction

Ich möchte meine Liste der Platzhalter-Eingabedateien stapelweise verarbeiten und dann den eingegebenen Dateinamen mit einem angehängten Suffix ausgeben. Ich hoffe, diesen allgemeinen Fall zu verstehen.

Insbesondere laufe ich

 konvertieren * .jpg -resize 800x600 ... * -resized.jpeg 

Unter Fedora21 mit ImageMagick 6.6.8 ist es nett, dass es ein Nummernsuffix anhängt, aber ich möchte den ursprünglichen Dateinamen beibehalten und ein Suffix hinzufügen. dh es gibt * -resized-0.jpeg * -resized-1.jpeg aus ...

Markiert, dies erscheint nicht zutreffend. Mehrere Eingabedateien und Ausgabedateien in awk

edit: Ist das möglich oder muss ich ein Skript schreiben?

1

1 Antwort auf die Frage

1
Scott

Es hängt davon ab, wie Sie das Wort "Skript" definieren. Dies ist wohl ein Skript:

for f in *.jpg do convert "$f" -resize 800x600 ... "$"-resized.jpeg done 

Sie können es aber einfach so in Ihr Terminal eingeben. Der Befehl (oder eine beliebige Anzahl von Befehlen) zwischen dem dound dem done get (s) wird einmal für jede übereinstimmende Datei ausgeführt *.jpg, wobei $fjeder Dateiname festgelegt ist. $ist eine Form der Parametererweiterung, bei der die Dateinamenerweiterung (Zeichenfolgenübereinstimmung .*) vom Ende (dh der rechten Seite) des $fDateinamens entfernt wird.

Das Benennen der Ausgabedateien .jpeganstelle von .jpgist eine gute Idee, um zu verhindern, dass der *.jpgPlatzhalter mit ihnen übereinstimmt. Ein anderer Ansatz besteht darin, die Ausgabedateien in ein anderes Verzeichnis zu schreiben.