Dateien nach Datum finden

A

Akasabi

Grünschnabel
Hallo zusammen,

ich würde gerne Wissen wie ich am einfachsten Dateien nach einem bestimmten Datum in einem Verzeichnis suchen kann.

Das Beispielverzeichnis sieht so aus:

/data/tmp/uebung/Aufgabe300

-rw------- 1 root root 55600 Sep 25 13:33 CPsrv_log_001_00.txt
-rw------- 1 root root 88855 Sep 25 13:33 CPsrv_log_001_01.txt
-rw------- 1 root root 63291 Sep 25 13:33 CPsrv_log_001_02.txt
-rw------- 1 root root 74294 Sep 25 13:33 CPsrv_log_001_03.txt
-rw------- 1 root root 2370098 Sep 25 13:33 WPsrv_log_001_00.txt
-rw------- 1 root root 3922777 Sep 25 13:33 WPsrv_log_001_01.txt
-rw------- 1 root root 3861959 Sep 25 13:33 WPsrv_log_001_02.txt
-rw------- 1 root root 9610 Feb 14 09:20 WPsrv_log_20110206_035013_00003236_00.txt
-rw------- 1 root root 9610 Feb 14 09:21 WPsrv_log_20110206_035138_00003336_00.txt
-rw------- 1 root root 9609 Feb 14 09:21 WPsrv_log_20110206_050847_00000605_00.txt


Ich hätte gerne alle Dateien vom 25 September ausgegeben und zwar so, dass ich sie weiter verarbeiten kann.

Meine erste Idee war es mit find zu versuchen aber da kenne ich nur die Möglichkeit des Suchmusters "älter bzw. jünger als..."

Zum Beispiel:

Code:
find *.txt  -mtime +10

Aber das bringt mich nicht weiter -.- Gibt es eine Möglichkeit dies mit find zu lösen?


Mein zweiter Ansatz ist eine Kombination aus awk und sed aber die finde ich nicht wirklich elegant ;)

Code:
ls -lrt | awk '{print $6, $7, $8, $9}' > Ausgabe.txt

Die Ausgabe der Datei Ausgabe.txt sieht so aus:

Sep 25 13:33 CPsrv_log_001_00.txt
Sep 25 13:33 CPsrv_log_001_01.txt
Sep 25 13:33 CPsrv_log_001_02.txt
Sep 25 13:33 CPsrv_log_001_03.txt
Sep 25 13:33 WPsrv_log_001_00.txt
Sep 25 13:33 WPsrv_log_001_01.txt
Sep 25 13:33 WPsrv_log_001_02.txt
Feb 14 09:20 WPsrv_log_20110206_035013_00003236_00.txt
Feb 14 09:21 WPsrv_log_20110206_035138_00003336_00.txt
Feb 14 09:21 WPsrv_log_20110206_050847_00000605_00.txt

Als nächstes habe ich die Dateien mit dem Datum "Sep 25" mit einem sed aus der Datei in eine andere eingefügt.

Code:
sed -n '/Sep 25/p' Ausgabe.txt > Ausgabe2.txt

Das hat auch soweit funktioniert.

Die Ausgabe der Datei Ausgabe2.txt wäre wie folgt:

Sep 25 13:33 CPsrv_log_001_00.txt
Sep 25 13:33 CPsrv_log_001_01.txt
Sep 25 13:33 CPsrv_log_001_02.txt
Sep 25 13:33 CPsrv_log_001_03.txt
Sep 25 13:33 WPsrv_log_001_00.txt
Sep 25 13:33 WPsrv_log_001_01.txt
Sep 25 13:33 WPsrv_log_001_02.txt


Nun würde mich interessieren was ihr von meiner Lösung haltet und ob es nicht einfachere und bessere Wege gibt.

Ich bin mir sicher das es diese Wege gibt, da ich selber nur wenig Erfahrung mit Unix habe.

Ich bedanke mich schon einmal für eure Hilfe und bin gespannt auf eure Antworten :)

Gruß Akasabi
 
Schande über mich :D an grep habe ich gar nicht gedacht >.<

Jedenfalls danke für die Hilfe!

Da mir nur der Tag und der Monat bekannt sind hab ich es nun so gelöst:

Code:
ls -lrt | grep 'Sep 25'

So sieht es schon um einiges eleganter aus ;)
 

Ähnliche Themen

sed in awk

Mit AWK verschiedene Felder verschiedener Zeilen vergleichen

Problem mit SATA

Creative Labs SoundBlaster Audigy 2 ZS unter Debian / Kernel 3.16

Dateien mit gleicher Größe löschen

Zurück
Oben