GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ändern von Dateien im laufenden Betrieb unter Linux (Schreiben in eine Eingabedatei in einer Pipe)

Versuchen Sie, Schwamm von moreutils wie folgt zu verwenden:

sed "s/root/toor/" /etc/passwd | grep -v joey | sponge /etc/passwd

Es sammelt die gesamte Eingabe, bevor es in seine Ausgabe schreibt.


Ich würde vermuten, dass sed immer noch die temporäre Datei erstellt, aber das Folgende könnte tun, was Sie wollen? (Die Verwendung von strace zeigt Ihnen möglicherweise an, ob sed eine temporäre Datei erstellt oder nicht).

sed -i '/bar/!d' foo.txt

Das Ausrufezeichen invertiert die Übereinstimmung, d steht für Löschen, also werden alle Zeilen entfernt, die keinen Balken enthalten.


Linux
  1. Finden Sie Dateien und Verzeichnisse unter Linux mit dem Befehl find

  2. Kopieren Sie Dateien im Linux-Terminal

  3. Verschieben Sie Dateien im Linux-Terminal

  4. Verschieben von Dateien unter Linux ohne mv

  5. Was ist die Beschränkung der maximal geöffneten Dateien unter Linux?

Die 6 besten Möglichkeiten zum Anzeigen von Dateien unter Linux

So benennen Sie eine Datei (en) in Linux um

So entpacken Sie die gz-Dateien unter Linux

Linux-Dateiverwaltung über das Terminal

So komprimieren Sie eine Datei unter Linux

Linux-Pipe-Audiodatei zum Mikrofoneingang