Verwenden von „sed“ zum Suchen und Ersetzen von

Verwenden von „sed“ zum Suchen und Ersetzen von

Ich weiß, dass diese Frage wahrscheinlich schon einmal beantwortet wurde. Ich habe an verschiedenen Stellen viele Threads dazu gesehen, aber die Antworten sind für mich normalerweise schwer herauszufinden. Ich suche Hilfe bei einem Beispiel für die Verwendung des Befehls „sed“.

Angenommen, ich möchte auf die Datei „hello.txt“ (im selben Verzeichnis wie die Eingabeaufforderung) reagieren. Überall, wo sie den Ausdruck „few“ enthält, sollte dieser in „asd“ geändert werden. Wie würde der Befehl aussehen?

Antwort1

sedist derSströmenEd.esor, indem Sie |(Pipe) verwenden können, umStandard-Streams(insbesondere STDIN und STDOUT) durch sedund ändern Sie sie programmgesteuert im laufenden Betrieb, was es zu einem praktischen Werkzeug in der Tradition der Unix-Philosophie macht; Sie können Dateien aber auch direkt mit den -iunten genannten Parametern bearbeiten.
Folgendes berücksichtigen:

sed -i -e 's/few/asd/g' hello.txt

s/wird benutzt umSErsetzen Sie den gefundenen Ausdruck fewdurch asd:

Die wenigen, die Mutigen.


Der ASD, der Mutige.

/gsteht für "global", d. h., dies wird für die gesamte Zeile durchgeführt. Wenn Sie das weglassen /g(bei s/few/asd/müssen immer drei Schrägstriche vorhanden sein, egal was passiert) und fewzweimal in derselben Zeile vorkommt, fewwird nur der erste in geändert asd:

Die wenigen Männer, die wenigen Frauen, die Mutigen.


Die asd-Männer, die wenigen Frauen, die Mutigen.

Dies ist in einigen Fällen nützlich, beispielsweise beim Ändern von Sonderzeichen am Zeilenanfang (zum Beispiel beim Ersetzen der Größer-als-Symbole, die manche Leute verwenden, um vorheriges Material in E-Mail-Threads zu zitieren, durch einen horizontalen Tabulator, während eine zitierte algebraische Ungleichung weiter unten in der Zeile unverändert bleibt), aber in Ihrem Beispiel, in dem Sie angeben, dassüberall fewWenn es ausgetauscht werden muss, stellen Sie sicher, dass Sie es haben /g.

Die folgenden zwei Optionen (Flags) werden zu einer zusammengefasst -ie:

-iOption wird zum Bearbeiten verwendetichn Platz auf der Datei hello.txt.

-eOption gibt dietAuszuführender Ausdruck/Befehl, in diesem Fall s/.

Hinweis: Es ist wichtig, dass Sie -i -ezum Suchen/Ersetzen verwenden. Wenn Sie dies tun -ie, erstellen Sie eine Sicherungskopie aller Dateien mit dem angehängten Buchstaben „e“.

Antwort2

sed -i 's/fea/asd/g'  hello.txt

G:Allgemein

S:Ersatz

-ich: Echtzeit arbeitet mit Dateian Ort und Stelle

verwandte Informationen