bash: befehl als 2. arg für mv

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
se8i
Beiträge: 1017
Registriert: 08.11.2002 17:02:20
Wohnort: nähe Karlsruhe
Kontaktdaten:

bash: befehl als 2. arg für mv

Beitrag von se8i » 17.09.2004 15:20:54

ich hab folgenden befehl, um den Dateinamen eines Bildes anhand des Datums in den exif-infos zu bestimmen:

Code: Alles auswählen

echo $(exif walt\ 1\ 001.jpg | grep Datum | grep -v "(o" | grep -v "(d" | sed -e 's/Datum und Uhrzeit   |//g' | sed -e 's/$/.jpg/g' | sed -e 's/:/-/g') | sed -e 's/ .jpg/.jpg/g'
jetzt möchte ich diesen befehl als zweites argument an mv übergeben, aber

Code: Alles auswählen

mv $(echo $(exif walt\ 1\ 001.jpg | grep Datum | grep -v "(o" | grep -v "(d" | sed -e 's/Datum und Uhrzeit   |//g' | sed -e 's/$/.jpg/g' | sed -e 's/:/-/g') | sed -e 's/ .jpg/.jpg/g')
oder

Code: Alles auswählen

mv `echo $(exif walt\ 1\ 001.jpg | grep Datum | grep -v "(o" | grep -v "(d" | sed -e 's/Datum und Uhrzeit   |//g' | sed -e 's/$/.jpg/g' | sed -e 's/:/-/g') | sed -e 's/ .jpg/.jpg/g'`
bringen beide folgende fehlermeldung:

Code: Alles auswählen

mv: Beim Verschieben mehrerer Dateien muss das letzte Argument ein Verzeichnis sein.
,,mv --help" gibt weitere Informationen.
Hat irgendjemand eine idee?

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.09.2004 15:28:30

was ist denn die Ausgabe von deinem Befehl wenn du ihn nicht als Parameter für "mv" verwendest?
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
se8i
Beiträge: 1017
Registriert: 08.11.2002 17:02:20
Wohnort: nähe Karlsruhe
Kontaktdaten:

Beitrag von se8i » 17.09.2004 15:39:14

das datum, zB so: "2004-01-01 05-14-55.jpg"

Benutzeravatar
Savar
Beiträge: 7174
Registriert: 30.07.2004 09:28:58
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von Savar » 17.09.2004 15:46:20

ich wollte die vollständige Ausgabe.. mal abgesehen hast du dann

mv "2004-01-01 05-14-55.jpg"

und irgendwie fehlt da ja das Ziel?.. mal abgesehen das wahrscheinlich keine "" Zeichen mit dabei sind und er dann dank des Leerzeichens das als 2 Werte interpretiert
MODVOICE/MYVOICE
Debianforum Verhaltensregeln
Log Dateien? -> NoPaste

Benutzeravatar
se8i
Beiträge: 1017
Registriert: 08.11.2002 17:02:20
Wohnort: nähe Karlsruhe
Kontaktdaten:

Beitrag von se8i » 17.09.2004 15:49:57

das ist nur der teil für das zweite argument.
aber das mit dem leerzeichen könnte stimmen, ich probier's mal aus.
ja, es lag wirklich am leerzeichen. Naja, auf die einfachen Dinge kommt man oft nicht.
Danke :)

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: bash: befehl als 2. arg für mv

Beitrag von roli » 21.09.2004 12:57:50

Hi,

mach doch einfach ein kleines Script draus:

Code: Alles auswählen

#!/bin/bash

my_exif_info = $(exif walt\ 1\ 001.jpg | grep Datum | grep -v "(o" | grep -v "(d" | sed -e 's/Datum und Uhrzeit   |//g' | sed -e 's/$/.jpg/g' | sed -e 's/:/-/g') | sed -e 's/ .jpg/.jpg/g'
mv $1 "$my_exif_info"
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten