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

Ausgabe soll in Datei mit dem gleichen Namen wie die Eingabedatei gespeichert werden?

Für diese Frage gibt es hier bereits Antworten :Eine Datei ändern, ohne eine andere Datei zu erstellen [Duplizieren]

(6 Antworten)
Vor 6 Jahren geschlossen.

Ich habe eine Eingabedatei und führe einen Befehl aus, möchte aber, dass die Ausgabe unter demselben Namen wie die Eingabedatei gespeichert wird.

Ich habe den folgenden Befehl ausprobiert, aber er macht die Ausgabedatei leer:

cat file1 | grep "YISHA" > file1

Akzeptierte Antwort:

Auf GNU-Systemen könnten Sie sed verwenden (die GNU-Implementierung):

sed -i -n '/YISHA/p' file1

Das FreeBSD- oder OS/X-Äquivalent:

sed -i '' -n '/YISHA/p' file1

oder mit sponge von moreutils:

grep "YISHA" file1 | sponge file1

Linux
  1. Wie hängt man die Ausgabe an eine Datei an?

  2. diff, um nur die Dateinamen auszugeben

  3. Wie leite ich stderr und stdout in verschiedene Dateien in derselben Zeile im Skript um?

  4. Wie leitet man die Ausgabe von system() in eine Datei um?

  5. Wie kann man die Anzahl der Bytes in einer Datei zählen und dieselben Bytes gruppieren?

Eingabe-/Ausgabeumleitung in Linux/Unix

Ausgabe nach Stdout und gleichzeitig Grep in eine Datei?

Shell-Scripting Teil 4 – Eingabe, Ausgabe und Umleitung

Speichern Sie die Ausgabe eines Befehls vom Debian-Terminal in einer Datei

find:Dateisystemschleife erkannt

Linux:Wie verwende ich eine Datei gleichzeitig als Ein- und Ausgabe?