SED - Überzeugende Zeilen in einer Textdatei

SED - Überzeugende Zeilen in einer Textdatei

Sed, kurz für "Stream Editor", ist ein leistungsstarkes Textverarbeitungswerkzeug, das üblicherweise in Linux- und UNIX-Systemen verwendet wird. Es kann eine breite Palette von Vorgängen in Textdateien ausführen, einschließlich Suchen, Ersetzen, Einfügen und Löschen von Zeilen. Eine gemeinsame Aufgabe, die Benutzer häufig mit SED ausführen müssen. In diesem Artikel geben wir einen Leitfaden zum Beherrschen von SED und zur Verwendung von Zeilen in Textdateien.

Bevor wir uns mit den Besonderheiten der Verwendung von SED zur Verfechungsleitungen eintauchen.”In der Programmierung ist ein Kommentar eine Codezeile, die vom Compiler oder Interpreter ignoriert wird. Es wird verwendet, um dem Code Notizen, Erklärungen oder andere Informationen hinzuzufügen, ohne die Funktionalität zu beeinflussen. Kommentare werden typischerweise durch ein spezielles Zeichen oder eine Sequenz von Zeichen bezeichnet, wie z. B. „#“ in Shell -Skripten, "//" in C ++ oder "/ * */" in Java.

Kontrollzeilen in Textdateien

Um eine Zeile in einer Textdatei zu kontrollieren, bedeutet dies, die Kommentarzeichen zu entfernen und die Zeile aktiv oder ausführbar zu gestalten. Betrachten Sie beispielsweise das folgende Shell -Skript:

#!/bin/bash # Dies ist ein Kommentar # echo "Hallo, Welt!"
1234#!/bin/bash # Dies ist ein Kommentar # echo "Hallo, Welt!"

In diesem Skript wird die erste Zeile a genannt "Shebang" und teilt dem System mit, mit welchem ​​Interpreter das Skript ausgeführt werden soll. Die zweite und dritte Zeilen sind Kommentare, die Informationen über das Skript enthalten, aber nicht ausgeführt werden. Die vierte Zeile ist der tatsächliche Befehl, der „Hallo, Welt druckt!”Zur Konsole.

Wenn wir die dritte Zeile kontrollieren und sie ausführbar machen wollten, würden wir den „#“ -Charakter vor dem Befehl „Echo“ entfernen:

#!/bin/bash # Dies ist ein Kommentar echo "Hallo, Welt!"
1234#!/bin/bash # Dies ist ein Kommentar "Hallo, Welt!"

Jetzt, da wir das Konzept der Überbrückung von Linien verstehen, lassen Sie uns sehen, wie wir SED verwenden können, um diese Aufgabe zu erledigen. SED verwendet regelmäßige Ausdrücke oder Regex, um Muster in Textdateien abzustimmen und Transformationen auf sie anzuwenden. Um eine Zeile zu kontrollieren, müssen wir zu Beginn der Zeile nach den Kommentarfiguren suchen und sie löschen.

Hier ist die grundlegende Syntax für die Verwendung von SED, um Linien in einer Textdatei zu verwenden:

sed 's/^#//' InputFile> outputFile
1sed 's/^#//' InputFile> outputFile

Lassen Sie uns diesen Befehl aufschlüsseln:

  • sed ist der SED -Befehl selbst
  • S steht für „Ersatz“, das ist die Operation, die wir ausführen möchten
  • /^#/ ist das Regex -Muster, das wir übereinstimmen wollen. Der „^“ -Scharakter bedeutet „Beginn der Zeile“ und „#“ ist der Kommentarcharakter, den wir entfernen möchten.
  • // ist die Ersatzzeichenfolge, die in diesem Fall leer ist. Dies bedeutet, dass wir die Kommentarfiguren löschen und sie nicht durch irgendetwas ersetzen.
  • Eingabedatei ist der Name der Datei, die wir ändern möchten
  • > ist ein Umleitungsbetreiber, der die Ausgabe an eine neue Datei anstelle der Konsole sendet
  • Ausgabedatei ist der Name der neuen Datei, die die unkontrollierte Version der Eingabedatei enthält

Hier ist ein Beispiel dafür, wie wir diesen Befehl verwenden würden, um Zeilen in einem Shell -Skript zu wenden:

sed 's/^#//' Skript.sh> unkontrolliert.Sch
1sed 's/^#//' Skript.sh> unkontrolliert.Sch

Dieser Befehl lesen den Inhalt von Skript.Sch, entferne das "#" Zeichen aus Zeilen, die mit ihnen beginnen, und schreiben das Ergebnis in eine neue Datei namens Componented.Sch.

Beachten Sie, dass dieser Befehl nur die Kommentarzeichen vom Beginn der Zeile entfernt. Wenn es in der Mitte einer Zeile Kommentarcharaktere gibt, sind sie nicht betroffen. Um alle Kommentarzeichen in einer Datei zu entfernen, können wir das Regex -Muster so ändern, dass sie zu einem beliebigen Auftreten von „#“ entspricht und es löschen und es löschen:

sed 's/#//' InputFile> outputFile
1sed 's/#//' InputFile> outputFile

Dieser Befehl wird alle entfernen "#" Zeichen in der Datei, unabhängig davon, wo sie erscheinen.

Es ist erwähnenswert, dass der von uns bisher gezeigte SED -Befehl die Eingabedatei direkt ändert. Wenn Sie eine neue Datei mit der unkontrollierten Version der Eingabedatei erstellen möchten, können Sie die verwenden "> Outputfile" Syntax, wie wir es in den obigen Beispielen getan haben.

Wenn Sie die Eingabedatei direkt ändern möchten, können Sie die verwenden "-ich" Option, die für "In-Place" steht:

sed -i 's/^#//' InputFile
1sed -i 's/^#//' InputFile

Dieser Befehl entfernen die "#" Zeichen aus der Eingabedatei selbst, ohne eine neue Datei zu erstellen.

Eine weitere nützliche Option in SED ist die "-E" Option, mit der Sie mehrere SED -Befehle in einer einzigen Befehlszeile angeben können. Dies kann praktisch sein, wenn Sie mehrere Transformationen in einer Datei durchführen möchten:

sed -e 's/^#//' -e 's/^ *//' InputFile> outputFile
1sed -e 's/^#//' -e 's/^ *//' InputFile> outputFile

Dieser Befehl entfernen zuerst die ##Zeichen aus Zeilen, die mit ihnen beginnen, und dann alle Räume entfernen, die am Anfang jeder Zeile erscheinen.

Abschluss

Zusammenfassend ist das Mastering SED eine wesentliche Fähigkeit für jeden Linux- oder Unix -Benutzer, der mit Textdateien arbeitet. Die Verwendung von SED bis zur Überbrückung von Linien in einer Datei ist eine häufige Aufgabe, die leicht mit dem erledigt werden kann "S/^#//" Befehl. Durch die Kombination dieses Befehls mit anderen SED -Funktionen können Sie leistungsstarke Textverarbeitungsvorgänge in Ihren Dateien ausführen und viele langwierige Aufgaben automatisieren.