stdout in datei umleiten(nur aktueller bildschirm)

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von SigmundK, 06.04.2007.

  1. #1 SigmundK, 06.04.2007
    Zuletzt bearbeitet: 06.04.2007
    SigmundK

    SigmundK Grünschnabel

    Dabei seit:
    06.04.2007
    Beiträge:
    2
    Zustimmungen:
    0
    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?
     
  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 Wolfgang, 06.04.2007
    Zuletzt bearbeitet: 06.04.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    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
    .

    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
     
  4. #3 SigmundK, 06.04.2007
    SigmundK

    SigmundK Grünschnabel

    Dabei seit:
    06.04.2007
    Beiträge:
    2
    Zustimmungen:
    0
    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;
                    }
            }
    }

    ?>
     
Thema:

stdout in datei umleiten(nur aktueller bildschirm)

Die Seite wird geladen...

stdout in datei umleiten(nur aktueller bildschirm) - Ähnliche Themen

  1. Mehrere Textdateien in STDOUT kopieren

    Mehrere Textdateien in STDOUT kopieren: Hallo zusammen, ich suche eine Möglichkeit, wie ich alle Dateien aus einem Verzeichnis (Textdateien) In die STDOUT kopieren kann bzw....
  2. stderr in stdout und Datei leiten

    stderr in stdout und Datei leiten: Hallo! Zur Zeit werden Fehler meines Programmes zur stdout geleitet, stdout und stderr werden angezeigt und in eine Logdatei geschrieben....
  3. Farbiger STDOUT serialisieren

    Farbiger STDOUT serialisieren: Hoi, gibt es ne Möglichkeit mit Linux Boardmitteln die Farbgebung der stdout bzw stderr auszuwerten? Hintergrund ist, dass ich Tests...
  4. printf modifizieren und stdout capturn

    printf modifizieren und stdout capturn: Hallo, ich moechte das Verhalten aller *printf Funkionen modifizieren und zwar sollen diese statt auf stdout in char strings schreiben. Mit...
  5. stderr auf stdout "kopieren", soll dann bei beidem ausgabe erfolgen

    stderr auf stdout "kopieren", soll dann bei beidem ausgabe erfolgen: Hi, wget gibt ja standardmäßig auf stderr ausgaben. das möchte ich auch so beibehalten, allerdings möchte ich die selben ausgaben auch auf...