grep Ergebnis Zeilenweise auswerten

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Jay-Yellow, 02.12.2006.

  1. #1 Jay-Yellow, 02.12.2006
    Jay-Yellow

    Jay-Yellow Grünschnabel

    Dabei seit:
    02.12.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo zusammen.
    Ich bin neu hier und ich hoffe ihr könnt mir bei nem kleinen Problem helfen.

    Ich führe einen Grep auf einige Dateien aus und das Ergebnis sind Zahlen.
    Ich will jetzt in nem über ein Shellskript die Zahlen vergleichen und die Größte bzw die Kleinste Zahl herrausbekommen.
    Nur leider bekomm ich das nicht hin weil ich noch nicht so lange mit Unix arbeite.
    Hat da jemand eine Idee?

    Falls ihr eure idee selbst schnell testen wollt oder ihr nicht verstanden habt was ich mein:
    Datei aa
    "G:100"

    Datei ab
    "G:150"

    Datei ac
    "G:200"

    grep "^G.*" a* | cut -d: f3

    Das Ergebnis hier von sind die Zeilen
    100
    150
    200

    und jetzt will ich dieses Ergebnis auswerten, hab aber leider keine idee wie.
    Bin auch gerne für andere methoden als grep offen, nur kenn ich da keine geeignete.
    Das 'G' am anfang der Datei bedeutet übrigens das ich die kleinste suchen muss.
     
  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 DaMutz, 02.12.2006
    Zuletzt bearbeitet: 02.12.2006
    DaMutz

    DaMutz Doppel-As

    Dabei seit:
    18.10.2003
    Beiträge:
    149
    Zustimmungen:
    0
    Ort:
    Giebenach / Schweiz
    kleinste Zahl:
    Code:
    grep "^G.*" a* | cut -d: -f3 | sort | head -n 1
    grösste Zahl:
    Code:
    grep "^G.*" a* | cut -d: -f3 | sort | tail -n 1
    es gibt sicher elegantere Lösungen...

    würde auch gehen, braucht statt grep und cut sed:
    Code:
    sed -e "s/^G://" a* | sort | tail -n 1
     
  4. #3 Jay-Yellow, 02.12.2006
    Jay-Yellow

    Jay-Yellow Grünschnabel

    Dabei seit:
    02.12.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Cool.
    Danke!
    Und wenn ich das jetzt ner Variablen zuweisen will?
    Mit ner normalen zuweisung gehts ja nicht wegen der ".

    Und was geht im endeffekt am schnellsten?
     
  5. #4 x-lette, 02.12.2006
    x-lette

    x-lette Mitglied

    Dabei seit:
    23.04.2006
    Beiträge:
    44
    Zustimmungen:
    0
    Ort:
    Berlin
    Neben " gibt es auch '. Die haben zwar ne unterschiedliche Bedeutung, können aber in vielen Fällen ausgetauscht werden. Ansonsten per \" aus-quoten.
    Oder (Achtung: backticks!):
    Code:
    ZAHL=`grep "^G.*" a* | cut -d: -f3 | sort | tail -n 1`
    Selber testen! :D
     
  6. DaMutz

    DaMutz Doppel-As

    Dabei seit:
    18.10.2003
    Beiträge:
    149
    Zustimmungen:
    0
    Ort:
    Giebenach / Schweiz
    Code:
    $time ./skript.sh; time ./skript2.sh
    200
    Real: 25.94s User: 2.78s System: 2.20s Percent: 19% Cmd: ./skript.sh
    200
    Real: 32.12s User: 2.87s System: 2.61s Percent: 17% Cmd: ./skript2.sh
    
    Code:
    $cat skript.sh 
    #!/bin/sh
    
    for ((  i = 0 ;  i <= 1000;  i++  ))
    do
      groesste=`sed -e "s/^G://" a* | sort | tail -n 1`
    done
    groesste=`sed -e "s/^G://" a* | sort | tail -n 1`
    echo $groesste
    
    Code:
    $cat skript2.sh 
    #!/bin/sh
    
    for ((  i = 0 ;  i <= 1000;  i++  ))
    do
      groesste=`grep "^G.*" a* | cut -d: -f3 | sort | tail -n 1`
    done
    groesste=`grep "^G.*" a* | cut -d: -f3 | sort | tail -n 1`
    echo $groesste
    
    so wie ich das interpretieren kann ist skript.sh schneller. Aber du kannst es selber noch einmal testen...
     
  7. #6 Jay-Yellow, 02.12.2006
    Jay-Yellow

    Jay-Yellow Grünschnabel

    Dabei seit:
    02.12.2006
    Beiträge:
    3
    Zustimmungen:
    0
    Vielen dank!
    klappt wunderbar, allerdings klappts nur mit grep Fehlerfrei, aber das reicht ja auch.
    Echt klasse Leute hier und ne schnelle hilfe!
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

grep Ergebnis Zeilenweise auswerten

Die Seite wird geladen...

grep Ergebnis Zeilenweise auswerten - Ä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...