tar grep

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Noobi, 14.07.2009.

  1. Noobi

    Noobi Jungspund

    Dabei seit:
    26.05.2009
    Beiträge:
    11
    Zustimmungen:
    0
    Hi Männers,

    Aufgabenstellung:

    Eine Archivdatei mit mehreren Dateien als Inhalt. Die namen der Dateien sind wiefolgt aufgebaut: kundennummer-timestamp(jjjjmmtthhmmss)-auftargsnummer

    bsp Inhalt der Archivdatei: 015889763158-20090610121312-015605432150
    015889763158-20090615141412-015605432150
    015889763158-20090620201312-015605432150
    015889763158-20090620121312-015605432150

    Nun sollen anhand Datum stunde und Minute Dateien gefiltert werden, doch irgendwie will das nicht wie ich will.

    Mein vorgehen:

    bsp:

    Datum=20090612
    Uhrzeit=17.31-24.00

    tar tf archivdatei.tar | grep '20090612[1731]-[2400]'

    Doch so will das nicht funktionieren.

    Vielen Dank für eure Hilfe
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bytepool, 14.07.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    kurz Vorweg: Das Board unterstuetzt Code-Bloecke, es waere nett wenn du die nutzen koenntest.

    Wenn ich das richtig verstehe, suchst du also nach einem grep Ausdruck, der alle Zahlen von 200906121731 bis 200906122400 abdeckt, mit den ueblichen Zeiteinschraenkungen fuer die letzten 4 Zahlen, ja?

    Ich habe gerade an einem regulaeren Ausdruck gebastelt der das kann, aber das ist dermassen friemelarbeit, als dass das keinen Sinn macht, wenn du haeufiger mal die Intervalle aendern moechtest.

    Ich denke in dem Fall solltest du, statt grep zu benutzen, lieber in einer Schleife uber die Dateien iterieren. Pro Iteration kannst du dann in Ruhe den Dateinamen parsen, und dann gucken ob die Parameter der aktuellen Datei deinen Wuenschen entsprechen (z.B. $hour >= 17, etc.).

    Hier der regulaere Ausdruck:
    Code:
    egrep "20090612((1[8-9][0-5][0-9])|(17[4-5][0-9])|(173[1-9])|(2[0-3][0-5][0-9])|2400)"  
    
    Aber wie du siehst ist das kaum zu lesen, und sehr spezifisch. Ich denke mit einer Schleife und dem parsen der Dateinamen faehrst du besser.

    mfg,
    bytepool
     
  4. #3 Aqualung, 14.07.2009
    Zuletzt bearbeitet: 15.07.2009
    Aqualung

    Aqualung Routinier

    Dabei seit:
    12.02.2008
    Beiträge:
    404
    Zustimmungen:
    0
    Für Filterungen nach Zeit empfehlen sich "seconds since epoch", z.B. so:

    Code:
    to_test1="20090615 10:31" 
    to_test2="20090615 23:59" 
    tar tf archivdatei.tar  | while read zeile;do 
        datestr=$(echo "$zeile" | cut -d"-" -f2 | sed "s/\(........\)\(..\)\(..\)\(..\)/\1 \2:\3:\4/") 
        sec=$(date -d "$datestr" +%s) 
        t1=$(date -d "$to_test1" +%s); 
        t2=$(date -d "$to_test2" +%s); 
        if [ $sec -ge $t1 -a $sec -le $t2 ]; then
            echo "$zeile"
        fi   
    done 
     
Thema:

tar grep

Die Seite wird geladen...

tar grep - Ähnliche Themen

  1. Kurztipp: Unerwünschte grep-Ausgaben vermeiden

    Kurztipp: Unerwünschte grep-Ausgaben vermeiden: Selbst aus altbekannten Programmen kann man oft noch einiges mehr herausholen - man muss sich nur einmal gründlich mit ihnen auseinandersetzen....
  2. GNU Grep 2.19 freigegeben

    GNU Grep 2.19 freigegeben: Von dem Textsuchprogramm GNU Grep ist jetzt Version 2.19 erschienen, die um durchschnittlich zehn Prozent schneller als die Vorgängerversion...
  3. KWin 4.90.1 wartet auf Bugreports

    KWin 4.90.1 wartet auf Bugreports: Martin Gräßlin, Maintainer des KDE-Fenstermanagers, hat den Code für KWin/5 als für gut genug befunden, um ihn im erweiterten Kreis testen zu...
  4. grep Ausgabe an ls übergeben

    grep Ausgabe an ls übergeben: Kann ich die Ausgabe von grep (es sind dateinamen des lokalen verzeichnisses) irgendwie gleich weiterpipen zu ls? Also so das ich zu den...
  5. Grep bis zum ersten Vorkommen

    Grep bis zum ersten Vorkommen: Hallo Zusammen, ich habe ein kleines Problem. :) Die Ausgangssituation ist folgende: Der String...