grep Ergebnis Zeilenweise auswerten

Diskutiere grep Ergebnis Zeilenweise auswerten im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; 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...

  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 diesen Ratgeber 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 in dieser Kategorie etwas passendes.
    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. Textdatei filtern und löschen mit grep /sed

    Textdatei filtern und löschen mit grep /sed: Guten morgen liebe Forenmitglieder, da ich etliche Jahre in Sachen Linux pausiert habe und nun wegen beruflichem Wechsel wieder dort einsteige...
  2. grep + regex zum Log parsen

    grep + regex zum Log parsen: Hi zusammen, ich möchte ein Logfile gerne auf eine Stringkombination durchsuchen. D.h. im Log steht sowas wie: 2016-12-20 10:10:43 ETL started :...
  3. 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....
  4. 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...
  5. 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...