gutefrage.net, die Ratgeber Community
Login   |  Registrieren   |  Forum |  Richtlinien & FAQ

Bash: Datumsvergleich

gefragt von CuchulainnCuchulainn am 25.01.2008 um 20:03 Uhr

Ich habe noch eine Frage zur Bash-Skript-Programmierung. Ich habe zwei Dateien, die eine hat mein Skript ermittelt, die andere wurde übergeben. Nun habe ich von beiden Dateien das letzte Änderungsdatum in Variablen gespeichert. Diese Daten möchte ich nun vergleichen, aber mein Ansatz unten funktioniert nicht.

if [[ "$TAGUEBERGABE > $TAG" ]]

then

echo "$NAME"

fi

Oder gibt es vielleicht sogar eine einfachere Möglichkeit herausfinden, welche Datei älter oder jünger ist?

Frage beantworten

Hier finden Sie weitere Fragen zu den Themen:

Linux x 1.207 Programmierung x 400 Unix x 39 Bash x 9

Vom Fragesteller als hilfreichste Antwort ausgezeichnet


a1exander
beantwortet von a1exander am 26. Januar 2008 08:30
1x
Die Antwort ist hilfreich? Dann klick mich!
Hilfreichste Antwort

Wenn die beiden Variablen numerisch sind, dann versuche es mit [ $TAGUEVERGABE -gt $TAG ] im Test. Damit das Datum numerisch wird, benutze an einfachsten den Unix-Zeitstempel, also

if [ $(stat -c %Y $DATEI1) -gt $(stat -c %Y $DATEI2) ] ; then echo "Test" ; fi

Kommentar von B4a106e4893fd452df0001eaeecf9d7esmallCuchulainn am 26. Januar 2008 10:51

Ich danke dir. Es hat funktioniert.


Weitere gute Antworten


mju13
beantwortet von mju13 am 28. Januar 2008 13:13
1x
Die Antwort ist hilfreich? Dann klick mich!

Du kannst die Zeitstempel der beiden Dateien auch direkt vergleichen:

> #!/bin/bash
>
> file1=datei1.csv
> file2=datei2.csv
>
> if [ $file1 -nt $file2 ]; then # NewerThan
> echo "$file1 ist neuer als $file2"
> fi
>

Weitere Tests stehen unter "man test" bzw. "man [".

Kommentar von B4a106e4893fd452df0001eaeecf9d7esmallCuchulainn am 29. Januar 2008 18:35

Danke. Das ist sehr gut zu wissen.


anonym
beantwortet von elise am 25. Januar 2008 20:31
1x
Die Antwort ist hilfreich? Dann klick mich!

Anscheinend sollte ein Leerzeichen sowohl nach der öffnenden als auch vor der schliessenden eckigen Klammer stehen.Vielleicht funktioniert es.

Kommentar von B4a106e4893fd452df0001eaeecf9d7esmallCuchulainn am 26. Januar 2008 10:42

Vielen Dank für die Antwort. Das war leider nicht das Problem :(


Frage beantworten

Verwandte Fragen

Verwandte Fragen

Noch nicht die richtige Antwort? Dann hier in allen Fragen und Tipps suchen:




Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Bitte lesen Sie hierzu auch unsere Rechtlichen Hinweise.