Merkwürdiges AWK-Problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
01101101
Beiträge: 219
Registriert: 06.08.2003 10:53:09
Wohnort: Franken

Merkwürdiges AWK-Problem

Beitrag von 01101101 » 07.04.2012 14:30:09

Hallo,

ich bin gerade dabei, mir ein kleines Skript zusammenzustellen, um meine Bilder umzubenennen. Dabei habe ich festgestellt, daß AWK manchmal einfach nicht funktioniert.

Konkret tue ich folgendes:

Code: Alles auswählen

% exiv2 IMG_7657.JPG
(...)
Zeitstempel des Bildes: 2012:02:05 08:25:34
(...)
Das funktioniert immer. Datum und Uhrzeit möchte ich nun extrahieren:

Code: Alles auswählen

% exiv2 IMG_7657.JPG | grep "Zeitstempel des Bildes" | awk -F': ' '{print $2}'
Wenn ich den Befehl 10 mal ausführe, erhalte ich ca. 7 mal das gewünschte "2012:02:05 08:25:34" und ca. 3 mal eine leere Zeile.

Hat jemand eine Idee, woran das liegen könnte? Ob ich den Befehl schnell (in einer Schleife) oder langsam per Hand wiederhole ändert nichts am Resultat...

Viele Grüße

01101101

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Merkwürdiges AWK-Problem

Beitrag von Liffi » 07.04.2012 14:40:00

Gleiches Bild, gleicher User?

EDIT:: Ich habs mal selbst versucht.
Das problem ist nicht awk sondern exiv2. Das liefert leider nicht immer timestamp.

EDIT2:: grep -a könnte dir helfen. Aus einem (mir noch bisher nicht erklärlichen Grund), behauptet grep, die Ausgabe von exiv2 wäre ein "Binary file".

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Merkwürdiges AWK-Problem

Beitrag von GoKi » 07.04.2012 14:50:24

Ich würde für den Zweck exiftool aus dem Paket Debianlibimage-exiftool-perl benutzen. Damit wird das umbenennen der Bilder entsprechend der Exif-Tags ein Einzeiler. Beispiele in der man-page unter "RENAMING EXAMPLES".
MfG GoKi
:wq

01101101
Beiträge: 219
Registriert: 06.08.2003 10:53:09
Wohnort: Franken

Re: Merkwürdiges AWK-Problem

Beitrag von 01101101 » 07.04.2012 14:52:52

Ja, immer das gleiche Bild.

Das ist ja merkwürdig. Ich habe jetzt auch bei einem von hunderten Versuchen bei "grep" erhalten: "Übereinstimmungen in Binärdatei (Standardeingabe)". Wenn ich awk dahinter hänge, tritt das Problem 10x so häufig auf. Komisch...

Aber grep -a scheint zu funktionieren.

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

Re: Merkwürdiges AWK-Problem

Beitrag von Meillo » 07.04.2012 15:54:04

01101101 hat geschrieben: Das ist ja merkwürdig. Ich habe jetzt auch bei einem von hunderten Versuchen bei "grep" erhalten: "Übereinstimmungen in Binärdatei (Standardeingabe)". Wenn ich awk dahinter hänge, tritt das Problem 10x so häufig auf. Komisch...
Das hat jedenfalls nichts mit awk zu tun.
Use ed once in a while!

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Merkwürdiges AWK-Problem

Beitrag von detix » 07.04.2012 18:59:54

Kann denn awk überhaupt mit 2 Zeichen als Feldtrenner (-F': ') umgehen?
grep kannst du dir sparen:

Code: Alles auswählen

exiv2 IMG_7657.JPG | awk '/Zeitstempel des Bildes/ { print $(NF-1), $NF }'
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

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

Re: Merkwürdiges AWK-Problem

Beitrag von Meillo » 08.04.2012 11:42:24

detix hat geschrieben:Kann denn awk überhaupt mit 2 Zeichen als Feldtrenner (-F': ') umgehen?
Awk kann sogar mit augewachsenen RegExps als Trenner umgehen. ;-)
Use ed once in a while!

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Merkwürdiges AWK-Problem

Beitrag von detix » 08.04.2012 14:25:00

Meillo hat geschrieben:Awk kann sogar mit augewachsenen RegExps als Trenner umgehen. ;-)
Gut zu wissen, danke Meillo!
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten