Jörg Reinholz: Ups! Korrekturen.

Beitrag lesen

"cat myfile.log | grep 'INFO' > Zwischenspeicher"

So landet das in einer Datei. Das ist auch ein "Zwischenspeicher". Doch nähme man dafür mktemp. Dazu unten mehr.

~> Zwischenspeicher = `cat myfile.log | grep 'INFO'`;  
~> echo $Zwischenspeicher;

Beachte die Backticks (`) und das Dollarzeichen beim Lesen aus der Variable Zwischenspeicher. Sieht aus wie eine Lösung.

Doch halt, da ist noch Unsinn drin:

~> Zwischenspeicher = grep 'INFO' < myfile.log;`

... ist besser, sonst bekommst Du noch einen Blumentopf im Wettbewerb um die sinnloseste Verwendung des Programmes cat, welches zum "Concatenieren" (Zusammenfügen) von Dateien dient.

Ein

~> Zwischenspeicher = cat myfile.log myfile.log.1 | grep 'INFO';

wäre also ok, weil cat dann tut, wozu es geschaffen wurde. In Deinem Beispiel ist es sinnlos.

Zur Datei als Zwischenspeicher:

~> tempfile=`[link:http://unixhelp.ed.ac.uk/CGI/man-cgi?mktemp@title=mktemp]`;  
# Das legt ein eine temporäre Datei im Verzeichnis für temporäre Dateien an (/tmp/)  
# und gibt den Name zurück, der in $tempfile steht. Beachte die Backticks.  
  
~> grep 'INFO' < myfile.log > $tempfile;  
# Das schreibt alle Zeilen, die "INFO" enthalten in die Datei, deren Name in $tempfile steht.  
  
~> echo $tempfile;  
# gibt den Name und den Pfad der Datei aus.  
  
~> less $tempfile;  
# Betrachten des Inhalts  
  
~> wc -l < $tempfile;  
# Ausgabe der Zeilenanzahl(=Ergebnisse) aus der Datei. So geht das für alle Programme  
# die Dateinamen nicht als Parameter oder Optionsparameter entgegen nehmen, sondern  
# ausschließlich die Daten über die Konsole erwarten.  
  
~> wc -l $tempfile;  
# wc kann aber auch Dateien öffnen, die als Parameter angegeben werden.  
# Das liefert aber außer dem Ergebnis auch noch den Dateiname. Kann unerwünscht sein.  
  
~> unlink $tempfile;  
# löscht die Datei ohne Rückfrage  

Jörg Reinholz