Eine Zeile löschen, Handbuch kann nicht helfen

Hallo,

seit zwei Tagen suche ich verzweifelt nach einem Befehl (Handbuch 850 Seiten), mit dem man einen String bzw. eine Zeile aus einer Datei löschen kann (Zeile wäre mir lieber).
Mit „tr -d“ habe ich es schon versucht, aber irgendwie bin ich zu dumm für diesem Befehl…
Biiiitte helft mir.

Danke
Sylvia

Hallo Sylvia,

einen direkten Weg gibt es meines Erachtens nicht, da das Betriebssystem UNIX Dateien erzeugen, an bestehende anhängen, Dateien Löschen und noch einiges mehr kann. Das einfache Ändern einer bestehenden Datei mittendrin geht in einem Schritt jedoch nicht.

Ich vermute mal, Du möchtest die Zeile(n) löschen, welche den unliebsamen String enthalten. Dann empfehle ich Dir folgendes Vorgehen:

  1. Datei umbenennen
  2. umbenannte Datei auf stdout ausgeben
  3. mit egrep -v die Zeilen entfernen, welche den String enthalten
  4. stdout in die Datei umlenken
  5. umbenannte Datei löschen

In UNIX gesprochen:

mv dateiname dateiname.alt
cat dateiname.alt | egrep -v ‚String‘ > dateiname
rm dateiname.alt

Wenn Du nicht die Zeilen, sondern nur den String entfernen möchtest, so kannst Du den Streameditor sid statt egrep nutzen. Mit

man sid

bekommst Du alle Informationen. Du brauchst die Funktion „Substitute“ /s/, wenn Du alle Strings entfernen möchtest mit der Option /g für global. Damit ersetzt Du dann den String einfach durch eine leere Zeichenkette.

Gruß
Ted

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ersetze sid durch sed! :wink: (o.T.)

SUPER, Vielen Dank - funktioniert (o.T.)

Moin,

seit zwei Tagen suche ich verzweifelt nach einem Befehl
(Handbuch 850 Seiten), mit dem man einen String bzw. eine
Zeile aus einer Datei löschen kann (Zeile wäre mir lieber).

sed(1)
Wie sieht denn die Zeile aus?

Thorsten