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

Der Linux-Befehl sed ändert die Zieldatei nicht

Wenn Sie die Änderungen von sed speichern möchten Zurück zur Datei verwenden Sie die -i Möglichkeit:

$ cat file
<head>abc</head>
    <td>hello</td>
      <td>hello</td>
        <td>hello</td>
    <td>abc</td>
     <td>abc</td>
<h1>abc</h1>

$ sed -ni '/<td>/{s/^\s*//;s/abc//;s/<\/\?td>//g;p}' file

$ cat file
hello
hello
hello

Bearbeiten: Der Regex wird übersichtlicher, wenn wir mit sed ein anderes Trennzeichen verwenden und verwenden Sie die erweiterte Regexp-Option -r :

$ sed -r 's_</?td>__g' file
    hello
      hello
        hello
    abc
     abc

Die ? Machen Sie das vorherige Zeichen optional, also / muss nicht vorhanden sein, damit der reguläre Ausdruck <td> entspricht und </td> in Eins.


Im Befehl sed Verwenden Sie die Option -i, um die Datei selbst zu ändern , wenn nicht, wird die Ausgabe auf dem Bildschirm gedruckt, aber die Datei bleibt gleich.

Die Formel wäre:

sed -i <targetFile> 's/<beforeText>/<afterText>/g' <targetFile>

Zum Beispiel:

sed -i myCredentials.txt 's/secretPassword/xxx/g' myCredentials.txt

Eine weitere Option - in eine andere Datei ausgeben und umbenennen:

sed 's/secretPassword/xxx/g' myCredentials.txt > temp.txt
rm myCredentials.txt && mv temp.txt myCredentials.txt

Weitere Informationen finden Sie in der Dokumentation:

Das Dienstprogramm sed liest die angegebenen Dateien oder die Standardeingabe, wenn nofiles angegeben sind, und modifiziert die Eingabe wie durch eine Liste von Befehlen angegeben . Die Eingabe wird dann in die Standardausgabe geschrieben. Als erstes Argument für sed kann ein einzelner Befehl angegeben werden. Mehrere Befehle können mit den Optionen -e oder -f angegeben werden. Alle Befehle werden ungeachtet ihres Ursprungs in der angegebenen Reihenfolge auf die Eingabe angewendet.

-ich Dateien direkt bearbeiten , Sicherungen mit der angegebenen Erweiterung speichern. Wenn eine Erweiterung der Länge Null angegeben wird, wird keine Sicherung gespeichert. Es wird nicht empfohlen, beim direkten Bearbeiten von Dateien eine Erweiterung der Länge Null anzugeben, da Sie in Situationen, in denen der Speicherplatz erschöpft ist usw., eine Beschädigung oder einen Teil des Inhalts riskieren.


Linux
  1. So verwenden Sie den Linux-Befehl sed

  2. So verwenden Sie den Tar-Befehl unter Linux

  3. Der Linux-Sed-Befehl:Verwendung und Beispiele

  4. sed-Befehlsbeispiele unter Linux

  5. sed:Befehl nicht gefunden

Chown-Befehl in Linux (Dateibesitz ändern)

So ändern Sie die Priorität eines Prozesses in Linux

Chmod-Befehl – ​​So ändern Sie Dateiberechtigungen in Linux

Zeigen Sie den Inhalt einer Datei in der Linux-Befehlszeile an

Die 50 praktischen Beispiele des SED-Befehls in Linux

Wie verwende ich den Gzip-Befehl unter Linux?