Der „sedDas Befehlszeilendienstprogramm fungiert im Grunde als „Stream-Editor”, das die Textdateien und Streams manipuliert. Es wird verwendet, um Textdateien zu bearbeiten, Zeichenfolgen/Muster/Zeichen zu suchen und zu ersetzen, Zeilen zur Datei hinzuzufügen/zu löschen, den Text auszuwählen und vieles mehr.
Der Hauptvorteil des Befehls „sed“ besteht darin, dass er alle Bearbeitungsanweisungen für eine Datei implementiert, indem er einfach den einzelnen Befehl mit seinen unterstützten Flags ausführt. Es unterstützt die Benutzer auch beim Suchen und Ersetzen des Zeichens in einer Datei global oder an einer bestimmten Position.
Dieser Beitrag zeigt die Möglichkeiten, das Newline-Zeichen mit dem Befehl sed durch das Komma zu ersetzen:
- Verwenden der Option „-z“.
- Verwenden der Optionen „H, h, d, x und y“.
- Verwendung der Optionen „-n, H, h, g und p“.
- Verwenden der Optionen „H, x, p“.
- Mit „a, b, $! und N“ Optionen
Beispiel 1: Verwendung der Option „-z“.
Der „sedDer Befehl bietet das Flag „-z“ als Ersatz für „\N(newline)“-Zeichen mit dem „,(Komma)“ der Datei „itslinuxfoss.txt“ auf diese Weise:
$ sed -z 's/\n/,/g;s/,$/\n/' itslinuxfoss.txt
Der obige „sed“-Befehl enthält die folgenden Flags:
- z: Konvertiert das Zeichen „\n(newline)“ in das Nullzeichen (\0).
- S(Ersatz): Ersetzt die vorhandene Zeichenfolge/das vorhandene Muster durch eine neue.
- \N: Trennt jede Zeile der Datei als neue Zeile
- /G: Durchsucht das angegebene Muster/Zeichen global.
- $: Entspricht der letzten Zeile der Eingabedatei, also „itslinuxfoss.txt“:
Ausgabe
Es wird gezeigt, dass das Zeichen „\n“ global in der Datei „itslinuxfoss.txt“ durch das „,(Komma)“ ersetzt wird.
Beispiel 2: Verwendung der Optionen „H, h, d, x und y“.
Die Kombination aus „H, h, d, x und y“ kann auch verwendet werden, um „\n“ durch das neue Zeichen „,(Komma)“ zu ersetzen. Befolgen Sie den unten genannten „sed“-Befehl, um diese Aufgabe auszuführen:
$ sed 'H;1h;$!d;x;y/\n/,/' itslinuxfoss.txt
Die Beschreibung dieses „sed“-Befehls ist hier dargestellt:
- H: Hängen Sie die letzte Zeile des Haltetextes an.
- 1h: Kopiert jeden Dateinamen in die erste Zeile des Haltetextes
- $!d: Löscht alle neuen Zeilen außer der letzten Zeile der Datei.
- X: Tauscht den Musterraum und den Haltetext aus.
- y: Ersetzt das Zeichen „\n“ durch das Zeichen „,(Komma)“.
Ausgabe
Der obige Befehl hat seine Aufgabe erfolgreich erledigt.
Beispiel 3: Verwendung der Optionen „-n, H, h, g und p“.
Der `sed` Der Befehl verwendet die „-N”-Flag mit einem anderen Muster unterstützter Flags „H, h, g und p“ zum Ersetzen eines Zeilenumbruchzeichens durch ein Komma. Mal sehen, wie es funktioniert:
$ sed -n "H;1h;\${g;s/\n/,/g;p}" itslinuxfoss.txt
Der Befehl verwendete dieselben Flags (Beispiel 2), jedoch wurden zwei neue Flags hinzugefügt, d. h.:
- -N: Verhindert das automatische Drucken des Dateiinhalts.
- P: Druckt den Inhalt der Eingabedatei mit den neuen Änderungen, die aufgetreten sind.
Ausgabe
Das „\n“ wurde global durch das neue Zeichen „,(Komma)“ ersetzt.
Der erste Such- und Ersetzungsausdruck ersetzt jedes \n durch ein Komma, und der zweite Such- und Ersetzungsausdruck ersetzt ein Komma am Anfang einer Zeile durch ein Leerzeichen.
Beispiel 4: Verwendung der Optionen „H, x, p“.
Der „H, x, p“ Die Kombination kann auch mit dem Befehl „sed“ verwendet werden, um das Zeilenumbruchzeichen auf folgende Weise durch ein Komma zu ersetzen:
$ sed -n 'H;${x;s/\n/,/g;s/^,//;p;}' itslinuxfoss.txt
Die folgenden Flags werden auch in (Beispiel 3) besprochen:
Ausgabe
Der gewünschte Output wurde erreicht.
Beispiel 5: Verwendung von „a, b, $! und N“ Optionen
Der „a,b,$1 und N„ist eine weitere Kombination von „sed“-unterstützten Flags, um das Vorkommen von „\n“ mit dem „,(Komma)“ zu ändern. Der folgende Befehl zeigt, wie dieser Vorgang ausgeführt wird:
$ sed ':a;N;$!ba;s/\n/,/g' itslinuxfoss.txt
Die Beschreibung der Argumente „a,b,$! und N“ lautet wie folgt:
- A: Hängt die Aufgaben an
- B: Verzweigt den Dateiinhalt
- N: Wechselt zur nächsten Zeile
- $!: Verhindert, dass die Ersetzung nicht in der letzten Zeile angewendet wird
Ausgabe
Die definierte Aufgabe des Befehls „sed“ wurde erfolgreich ausgeführt.
Abschluss
Das Linux“sed„Befehlszeilentools verwenden die unterstützten Flags“-z“, „H, h, d, x und y„, Und „-n, H, h, g und p ” um ein „ zu ersetzen\N(newline)“ zu einem „,(Komma)“. Diese Aufgabe lässt sich auch problemlos mit dem „H, x, p“ Und „a, b, $! und N„Kombination von „sed“-Argumenten. Alle Flaggen führten ihre Arbeit organisiert durch.
In diesem Beitrag wurden alle möglichen Methoden aufgelistet, um mit dem Befehl sed eine neue Zeile durch ein Komma zu ersetzen.