stdout in datei umleiten(nur aktueller bildschirm)

S

SigmundK

Grünschnabel
Hallo

mit "befehl >text.txt" kann ich die Ausgabe in eine Datei umleiten.

Wenn der Befehl nun ein Programm ist das alle paar Sekunden seine Ausgabe aktualisiert habe ich in der Datei viele Bildschirme untereinender.
Wie kann ich dafür sorgen das immer nur die aktuelle Bildschirmausgabe in der Datei landet.

Ich hoffe ihr versteht was ich meine.

mfg
Sigmund
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Gibt es einen Befehl der wartet bis eine bestimmte Zeichenkette in stdin vorkommt dann stdin auf eine Datei oder stdout umleitet, die Datei zumacht wenn eine andere Zeichenkette auftaucht und das ganze wiederholt?
 
Zuletzt bearbeitet:
Hallo

Nein, du irrst dich.
command >text.txt
Erzeugt diese Datei falls nicht vorhanden ist, oder überschreibt sie wenn vorhanden.

command >>text.txt

ist das was du meinst.
Hier wird angefügt, falls Datei vorhanden und erzeugt, falls Datei nicht vorhanden.

Dein Befehl wird also seine STDOUT immer Neu in die Datei schreiben.

Gruß Wolfgang
.
.
.
EDIT
.

Hallo


.
[
Gibt es einen Befehl der wartet bis eine bestimmte Zeichenkette in stdin vorkommt dann stdin auf eine Datei oder stdout umleitet, die Datei zumacht wenn eine andere Zeichenkette auftaucht und das ganze wiederholt?

Nein, einen fertigen Befehl gibt es dafür nicht.
Aber du kannst dir eine Abfrage bauen, die das erledigt.
Code:
TESTVAR=$(command |grep "PATTERN");
IF [ x"$TESTVAR" = x ];
then
echo "Nix gefunden";
else
echo "$TESTVAR" >outputfile
fi
Die Datei braucht nicht geschlossen werden, da das nach der Ausgabe sofort erfolgt. Diese Art command >file ist wie schon beschrieben sehr simpel im Filehandling.
Hier der Auszug aus der man zur bash
Code:
Redirecting Output
       Redirection of output causes the file whose name results from the expansion of word to be opened for  writing  on
       file  descriptor n, or the standard output (file descriptor 1) if n is not specified.  If the file does not exist
       it is created; if it does exist it is truncated to zero size.

       The general format for redirecting output is:

              [n]>word

       If the redirection operator is >, and the noclobber option to the set builtin has been enabled,  the  redirection
       will  fail  if the file whose name results from the expansion of word exists and is a regular file.  If the redi‐
       rection operator is >|, or the redirection operator is > and the noclobber option to the set builtin  command  is
       not enabled, the redirection is attempted even if the file named by word exists.

Gruß Wolfgang
 
Zuletzt bearbeitet:
Vielen dank für deine Hilfe

Leider bin ich mit deinen Programm nicht zurechtgekommen :think: da hab ich doch nicht so viel erfahrung mit Linux.

Ein bisschen Erfahrung mit PHP hat mich aber dann doch zum Ziel geführt wenn auch nicht ganz so elegant.


PHP:
<?php
if ($fp_in=fopen("php://stdin","r")) {
        while (!feof($fp_in)) {
                $line = fgets($fp_in,4096);
                if(substr($line,0,6)=="anfang"){
                        $fp_out=fopen("/tmp/out.txt","w");
                        $open=1;
                }
                if($open==1){
                        fputs($fp_out,$line);
                }
                if(substr($line,0,11)=="ende"){
                        fclose($fp_out);
                        $open=0;
                }
        }
}

?>
 

Ähnliche Themen

Server-Monitoring mit RRDTool

Zurück
Oben