Komplette Zeilen

Beim Austausch einer kompletten Zeilen greifen Sie auf die Sed-Option c zurück. Allgemein tauschen Sie mit sed 'Suche'c'Ersatz' die über den Suchbegriff herausgefilterte Zeile vollständig gegen den Ersatzbegriff aus. Das Beispiel aus Listing 22 löscht die Leerzeile und trägt stattdessen einen Trenner in Form einer Reihe von Minuszeichen ein.

Listing 22

$ cat textdatei.txt | sed '/^\ *$/'c'---'
johann johannson  0885465468798746
---
Klaus Schraube  08755466584
Hans Michael  0987654321
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655

Anstelle des Suchmusters nimmt Sed allgemein mit sed [Zeile(n)]c'Ersatz' an dieser Stelle auch Zeilennummern an. Das erste Beispiel aus Listing 23 ersetzt die Leerzeile in Zeile 2 von textdatei.txt durch einen Balken mit Rauten. Beachten Sie bei der Angabe mehrerer Zeilennummern, dass Sie diese und alle anderen aus diesem Bereich löschen und mit der Austauschzeile ersetzen. Das Beispiel aus Zeile 8 löscht die Zeilen 2 bis 4 aus dem Inhalt von textdatei.txt und setzt an deren Stelle den Ersatztext ein.

Listing 23

$ cat textdatei.txt | sed 2c'###'
johann johannson  0885465468798746
###
Klaus Schraube  08755466584
Hans Michael  0987654321
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655
$ cat textdatei.txt | sed 2,4c'Restliche Mitglieder'
johann johannson  0885465468798746
Restliche Mitglieder
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655

Soll Sed gleich ganze Zeilen aus dem Inhalt entfernen, verwenden Sie die Sed-Option d. Die zu löschenden Zeilen sprechen Sie über ein Suchmuster an, wie etwa sed '/Muster/'d. Alternativ geben Sie direkt die Zeilennummer(n) der nicht mehr erwünschten Zeilen an: sed Zeile(n)d. Die Beispiele aus Listing 24 löschen die Leerzeile aus textdatei.txt oder entfernen ohne weitere Umwege die vierte Zeile aus dem Inhalt.

Listing 24

$ cat textdatei.txt | sed '/^\ *$/'d
johann johannson  0885465468798746
Klaus Schraube  08755466584
Hans Michael  0987654321
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655
$ cat textdatei.txt | sed 4d
johann johannson  0885465468798746
Klaus Schraube  08755466584
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655

Inhalte einfügen

Mit der Anweisung a fügen Sie zusätzliche Zeilen unterhalb, mit i oberhalb der angegeben Zeile oder des Suchmusters ein. Für die Positionierung nutzen Sie ein Suchmuster oder geben direkt eine Zeilennummer an. Führen Sie mehrere Zeilennummern an oder passt das Suchmuster gleich auf mehrere Zeilen, wendet Sed die Anweisung auf jede passende Zeile an.

Listing 25 zeigt zwei Beispiele zum Einfügen von Inhalten: Das erste Kommando ab Zeile 1 fügt am am Anfang und am Ende der Ausgabe (definiert über $) jeweils eine neue Zeile ein. Das Kommando ab Zeile 12 sucht hingegen nach dem String "Gans" und fügt dann um diesen herum jeweils die vorbereitete Textzeile ein. In der Praxis erstellen Sie so zum Beispiel manuell zu bearbeitende Prüflisten.

Listing 25

$ cat textdatei.txt \| sed '1i NEU ERSTE ZEILE NEU'\| sed '$a NEU LETZTE ZEILE NEU'
NEU ERSTE ZEILE NEU
johann johannson  0885465468798746
Klaus Schraube  08755466584
Hans Michael  0987654321
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655
NEU LETZTE ZEILE NEU
$ sed '/Gans/'i'---- DATEN ÜBERPRÜFEN ----' textdatei.txt\| sed '/Gans/'a'----'
johann johannson  0885465468798746
Klaus Schraube  08755466584
Hans Michael  0987654321
Jochen Hansen  0405458765143321
---- DATEN ÜBERPRÜFEN ----
Gabi Gans Meier   0548/9988776655
----

Soll Sed per Skript eine Shell-Variable entgegennehmen und korrekt auflösen, müssen Sie die Anweisungen in Anführungszeichen (") anstelle eines Hochkommas (') setzen. Das kleine Shell-Skript in Listing 26 zeigt exemplarisch die Handhabung von Shell-Variablen. Es fragt per read einen Suchbegriff ab und durchforstet anschließend textdatei.txt nach diesem String. Listing 27 zeigt den Ablauf des Skripts im Terminal.

Listing 26

#! /bin/sh
echo -n "Suchbegriff eingeben: "; read eingabe
cat textdatei.txt | sed -n "/$eingabe/"p

Listing 27

$ ./musterskript.sh
Suchbegriff eingeben: Hansen
Jochen Hansen  0405458765143321

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Die Kraft der Muschel
    Microsofts neue PowerShell greift auf die Bibliotheken des .NET-Frameworks zurück und verfügt so über einen riesiger Fundus von Funktionen und Objekten. Ist sie dadurch einer traditionellen Shell wie der Bash überlegen?
  • Mit Bordmitteln riesige Textdatei durchsuchen
  • Handarbeit
    Die meisten Nutzer drucken Dokumente aus einer Anwendung mit grafischer Oberfläche heraus. In einigen Situationen erweist es sich aber als sinnvoller, den Printserver Cups per Kommandozeile zu bedienen.
  • Hardcore Linux
    Dieser Teil der Serie über die Bash stellt die Grundlagen für die Arbeit mit mehreren und verketteten Befehlen auf der Bash zusammen.
  • Sauber verzahnt
    Verbinden, trennen, umformatieren: Unter Linux gibt es zahlreiche kleine Helfer, die die Arbeit mit Textdateien perfekt beherrschen – und die dazu noch perfekt zusammenarbeiten.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...