Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Da ist ja mein Problem, ich will in einem Stream

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Wolfgang+Jaschke
Gast





BeitragVerfasst am: 12. Jan 2001 13:08   Titel: Da ist ja mein Problem, ich will in einem Stream

die Zeilen und die Anzahl haben. Es funzt z.B. so :
#
# 1. Die Zeilen ausgeben die Pattern 1 und Pattern 2 enthalten
#
grep $Pattern1 File | tee /tmp/erg1 | grep $Pattern2 tee /tmp/erg2
#
# 2. Die Anzahl der Zeilen ausgeben
#
AnzPattern1 = cat /tmp/erg1 | wc -l
AnzPattern2 = cat /tmp/erg2 | wc -l
echo "$Pattern1 wurde $AnzPattern1 x gefunden"
echo "darin wurde $Pattern2 $AnzPattern2 x gefunden"

Nur diese blöden Zwischendateien /tmp/erg1 und /tmp/erg2 die ich ja nur für wc brauche, bremsen die ganze Geschichte aus, weil Plattenzugriff. (Die Datei ist wirklich sehr gross!!)

Ich MUSS sie aber anlegen, weil ich die Pipe brauche um das Suchergebnis des 1. grep -> 2. grep zu schicken.

Ich müsste also eigentlich das Ergebnis des 1. grep auf 2 Pipes senden:
Eine zum wc und die andeer zum nächsten grep...
Ich dache auch, das ich da irgendwas über stdin und stderr machen könnte, aber es gibt nur 1 Pipe und es bleibt auch nur 1 Pipe die ich zur Verfügung habe.
Forken vielleicht? Aber wie forkt man unter bash??
Named Pipes? Dann hätte ich beliebig viele, aber da habe ich u.U. ganz nette Seiteneffekte, weil global verfügbar..


Fragen über solche...

Vielen Dank für Eure Postings.
 

Wolfgang Jaschke
Gast





BeitragVerfasst am: 12. Jan 2001 13:09   Titel: Sorry, falsch einsortiert ....

Diese Nachricht sollte eigentlich in meinem u.a. Thread landen.
Kommt nicht wieder vor..
 

Jochen
Gast





BeitragVerfasst am: 12. Jan 2001 20:56   Titel: Re: Ohne Named Pipes

Ist das gewollt, dass bei Deinem obigen Skript Zeilen mit Pattern2 nur gezählt werden, wenn auch Patern1 drinne vorgekommen ist?
Ansonsten würde ich den awk verwenden:
code:

awk '
/Pattern1/ {
anzPattern1++
if (match ($0, /Pattern2/)) {
anzPattern2++
}
}
END {
print "Zeilen mit Muster 1: " anzPattern1
print "Zeilen mit Muster 1 und 2: " anzPattern2
} ' File



Getestet, übernimm's mit Cut'n'Paste und es wird laufen.

Und nächstes Mal mach die Betreffzeile nicht so lang! Das Ultraboard pappt noch "Re: " vorneweg und beschwert sich dann, der Betreff-Text sei zu lang...
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy