(9 Antworten)
Vor 6 Jahren geschlossen.
Ich weiß, diese Frage wurde wahrscheinlich schon einmal beantwortet. Ich habe viele Threads dazu an verschiedenen Stellen gesehen, aber die Antworten sind für mich normalerweise schwer zu extrahieren. Ich suche Hilfe bei einer beispielhaften Verwendung des Befehls „sed“.
Angenommen, ich wollte auf die Datei „hello.txt“ (im selben Verzeichnis wie die Eingabeaufforderung) reagieren. Überall dort, wo es den Ausdruck „few“ enthielt, sollte es in „asd“ geändert werden. Wie würde der Befehl aussehen?
Akzeptierte Antwort:
sed
ist das s behandeln ed itor, indem Sie |
verwenden können (Pipe), um Standardstreams zu senden (STDIN und STDOUT speziell) durch sed
und sie programmgesteuert im laufenden Betrieb ändern, was es zu einem praktischen Werkzeug in der Tradition der Unix-Philosophie macht; kann Dateien aber auch direkt mit dem -i
bearbeiten unten genannten Parameter.
Beachten Sie Folgendes :
sed -i -e 's/few/asd/g' hello.txt
s/
ist an s gewöhnt Ersetzen Sie den gefundenen Ausdruck few
mit asd
:
Die Wenigen, die Mutigen.
Der Asd, der Mutige.
/g
steht für „global“, was bedeutet, dies für die gesamte Linie zu tun. Wenn Sie /g
weglassen (mit s/few/asd/
, es müssen auf jeden Fall immer drei Schrägstriche vorhanden sein) und few
erscheint zweimal in derselben Zeile, nur die ersten few
wird in asd
geändert :
Die wenigen Männer, die wenigen Frauen, die Mutigen.
Die verrückten Männer, die wenigen Frauen, die Mutigen.
Dies ist unter bestimmten Umständen nützlich, z. B. beim Ändern von Sonderzeichen am Anfang von Zeilen (z. B. Ersetzen der Größer-als-Symbole, die einige Leute verwenden, um früheres Material in E-Mail-Threads zu zitieren, durch einen horizontalen Tabulator, während eine zitierte algebraische Ungleichung später in der Zeile bleibt unberührt), aber in Ihrem Beispiel, wo Sie das irgendwo angeben few
Falls es ersetzt werden sollte, vergewissern Sie sich, dass Sie /g
haben .
Die folgenden zwei Optionen (Flags) werden zu einer kombiniert, -ie
:
-i
Option wird verwendet, um i zu bearbeiten n Platzieren Sie in der Datei hello.txt
.
-e
Option gibt das e an auszuführender xpression/Befehl, in diesem Fall s/
.
Hinweis:Es ist wichtig, dass Sie -i -e
verwenden suchen/ersetzen. Wenn Sie -ie
tun erstellen Sie eine Sicherungskopie jeder Datei mit dem angehängten Buchstaben „e“.