[gelöst] exakte Zeile löschen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
debfan
Beiträge: 10
Registriert: 25.06.2014 16:40:16

[gelöst] exakte Zeile löschen

Beitrag von debfan » 25.06.2014 16:50:08

Guten Tag.

Wie kann man denn mit sed (oder ähnlichem) eine exakte Zeile löschen.

Also NICHT mit regexp, denn das würde weitere Teilmatches ebenfalls löschen.

Die Manpage habe ich schon durch aber ich bin wohl zu blöd dafür.
Zuletzt geändert von debfan am 25.06.2014 17:10:17, insgesamt 1-mal geändert.

charno
Beiträge: 636
Registriert: 28.06.2004 20:24:34

Re: exakte Zeile löschen

Beitrag von charno » 25.06.2014 17:03:37

Regexp funktioniert grundsätzlich auch:

^ steht für den Zeilenanfang
$ für das Zeilenende

Wenn du mit Pipes arbeitest würde ich so was versuchen (anderer Ansatz):

Code: Alles auswählen

grep -Fx "linie"
Quelle: http://stackoverflow.com/questions/4709 ... xact-match
"Wer sich nicht bewegt, spürt seine Fesseln nicht." - Rosa Luxemburg

debfan
Beiträge: 10
Registriert: 25.06.2014 16:40:16

Re: exakte Zeile löschen

Beitrag von debfan » 25.06.2014 17:09:55

Vielen Dank für die schnelle Antwort.

Code: Alles auswählen

sed -i '/^zeile$/d' test.txt
hats gebracht.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: exakte Zeile löschen

Beitrag von Meillo » 27.06.2014 13:28:44

debfan hat geschrieben:Vielen Dank für die schnelle Antwort.

Code: Alles auswählen

sed -i '/^zeile$/d' test.txt
hats gebracht.
Da kann's aber zu Problemen kommen falls `zeile' RegExp-Metazeichen enthaelt. Im Gegensatz zu sed kann awk auch Strings vergleichen:

Code: Alles auswählen

awk -v line='foo' '$0!=line'
An Stelle von `foo' kann man alles schreiben was kein Single-Quote enthaelt. Sonst kann man dort auch auf beliebige andere Shell-Art den Wert uebergeben.
Use ed once in a while!

Antworten