Webstatt.org - Community seit 2006 - 2012 (2024?)

Shell - Zahlen von-bis filtern

Avatar user-349
25.03.2009 21:29

Hallo zusammen,

ich stehe gerade vor folgendem Problem in der Shell:
Es sollen die Namen der Logfiles von Zeitpunkt x bis Zeitpunkt y ausgegeben werden.

Die Namen haben dieses Format: logfile.20090325_105752_229.log

Beispiel: mit xxxx105[7-9]* werden die Logfiles von 10:57 - 10:59 ausgegeben.

# ls logfile.20090325_105[7-9]*


logfile.20090325_105522_774.log
logfile.20090325_105601_081.log
logfile.20090325_105637_615.log
logfile.20090325_105752_229.log
logfile.20090325_105826_964.log
logfile.20090325_105900_464.log
logfile.20090325_105934_517.log


Wie kann ich mit einem Kommando z.B. die Logfiles von 10:48 - 10:51 ausgeben?
Mit
# ls logfile.20090325_10[4,5][8-9,0-1]*
bekomme ich zwar alle Files von 10:48 - 10:51, aber auch 10:40, 10:41 und 10:58, etc...

# ls logfile.20090325_10[48-51]* funktioniert so nicht, sowas in der Art würde ich suchen.

Hat jemand eine Idee, wie ich das Problem lösen könnte?

Danke!

user-303
25.03.2009 21:41

//edit:
ich nehms zurück...

Avatar user-271
10.04.2009 14:46

sorry...einfachste idee:
pavlo:test jan$ ls 2009035_104[6-9]* 2009035_105[0-1]*


^^

ob man das zusammenfassen kann...in einem regex...ich bin mir nich sicher...

edit:
hab mich grad ein bisschen umgehört...und die einzige möglichkeit auf die ich gestossen bin ist das ganze über ein egrep zu lösen....
pavlo:test jan$ ls | egrep '4[6-9]|5[0-1]'

#!/bin/bash
traurig){ neutral:& };:
Avatar user-349
15.04.2009 20:08

Cool danke - werd' ich morgen gleich mal ausprobieren lächeln