Warten bis "cat | sed" konstrukt beendet ist

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von panzaeron, 23.10.2006.

  1. #1 panzaeron, 23.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    Hallo,

    ich verwende in einem Skript viele cat "$DATEI" | sed -e "/xy/${XY}/" > "$DATEI" Konstrukte hintereinander. Wobei ${XY} je nach Benutzereingabe variiert.

    Wenn der Benutzer zu schnell die Daten ($XY) eingibt, wird der Inhalt von ${DATEI} gelöscht. Ich denke das liegt an einem nicht beendeten vorhergehenden cat | sed.
    Eine künstliche Verzögerung mit sleep 5 zwischen den Befehlen ist zwar möglich, aber nicht optimal, da der Wert je nach ${DATEI} stark variiert.
    Daher die Frage, wie ich es schaffe, die Abarbeitung des Skripts erst fortzusetzen, wenn der "cat | sed" Aufruf abgeschlossen ist?
     
  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, 23.10.2006
    Zuletzt bearbeitet: 23.10.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Das ist ein typischer Fall von useless use of cat

    Warum:
    Schau dir das mal genau an, was dabei rauskommt.

    sed ließt aus der Pipe die Ausgabe von cat.
    Da du sed aber selbst eine Datei übergeben kannst, kommt also das folgende - nicht funktionierende - Konstrukt raus.
    Dass das nicht geht, sagt dir die Manpage zu sed.
    Entweder dein sed (GNU sed) kennt die Option -i oder du musst mit temporären Zwischendateien arbeiten.
    GNU sed:
    Oder mit Zwischendatei
    Gruß Wolfgang
     
  4. #3 panzaeron, 23.10.2006
    panzaeron

    panzaeron Jungspund

    Dabei seit:
    22.09.2006
    Beiträge:
    19
    Zustimmungen:
    0
    Viel Dank für die Antwort :)

    und wieder was dazu gelernt, mit -i klappt auch alles problemlos :)
     
  5. #4 Schlaubi_fi.de, 23.10.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Mit Zwischendatei, dann aber ohne -i oder Wolle? *g

    sed -e "s/xy/${XY}/" "$DATEI" >Temp_file&&catTemp_file >$DATEI &&rm -f Temp_file
     
  6. #5 Wolfgang, 23.10.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Ja natürlich. :D

    Du kennst mich doch gelle.
    :devil:

    Gruß Wolfgang
     
Thema:

Warten bis "cat | sed" konstrukt beendet ist

Die Seite wird geladen...

Warten bis "cat | sed" konstrukt beendet ist - Ähnliche Themen

  1. Warten auf Godot hat ein Ende

    Warten auf Godot hat ein Ende: Der Spielehersteller OKAM Studio hat seine Spiele-Engine Godot unter die MIT-Lizenz gestellt. Der Umgang mit der Engine soll trotz umfassender...
  2. Gimp 2.8 lässt weiter auf sich warten

    Gimp 2.8 lässt weiter auf sich warten: Die neue Testversion 2.7.5 des freien Grafikprogramms Gimp enthält zahlreiche Verbesserungen und neue Funktionen auf dem Weg zu Gimp 2.8....
  3. Linux-Kernel 3.1 lässt auf sich warten

    Linux-Kernel 3.1 lässt auf sich warten: Zwei Monate nach Linux 3.0 ist Version 3.1 des Kernels fast veröffentlichungsreif, wird aber wohl erst in einem Monat erscheinen. Schuld daran ist...
  4. Auf Textausgabe in screen warten

    Auf Textausgabe in screen warten: Moin, ich habe ein Backup-Script für einen Gameserver. Das Script schickt zu erst den Befehl an die screen-session mit screen -S...
  5. Warten auf GIMP 2.8

    Warten auf GIMP 2.8: Die kommende Version 2.8 des freien Grafikprogramms GIMP lässt weiter auf sich warten. Das Projekt verfügt über deutlich zu wenig Entwickler, die...