anfrage löschen aus einer liste

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
monox
Beiträge: 16
Registriert: 31.10.2006 23:52:55

anfrage löschen aus einer liste

Beitrag von monox » 02.11.2006 20:25:31

hallo

ich möchte gerne aus einer liste mit hilfe einer eingabe sachen löschen. meine list in einem file sieht folgendermassen aus:
urs:dub
lala:lala
momo:momo

ich möchte, dass der user beispielsweise 'urs' oder 'dub' auswählen könnte, und es würde gleich die ganze linie löschen.
momentan habe ich zum test folgdenden code benutzt(das kann ich später noch ausbauen):

Code: Alles auswählen

VON="urs:dub"
sed -i -re 's/'$VON'//' .mylist.cfg
mit dieser zeile code wird mir zwar aus .mylist.cfg die zeile "urs:dub" entfernt, allerdings bleibt sie danach leer und ist innerhalb der gesamten liste noch immer da. wie muss ich es anstellen, dass die linie quasi komplett verschwindet und nicht einfach noch bestehend, jedoch leer bleibt?

ich hoffe mir kann jemand helfen.

mfg

urs dub

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 02.11.2006 20:28:17

Code: Alles auswählen

sed -ie "/$VON/d" Datei
oder

Code: Alles auswählen

sed -ie "/^$VON$/d" Datei
wenn du nicht möchtest, dass wenn VON="urs:dub" ist, auch die Zeile "maurs:dubai" gelöscht wird.

monox
Beiträge: 16
Registriert: 31.10.2006 23:52:55

weiterführung

Beitrag von monox » 03.11.2006 02:15:33

vielen dank!

dies funktioniert soweit so gut, nur hätte ich von dieser zeile weiter etwas entwicklen möchten, allerdings klappt dies nicht ganz. ich möchte nun, wenn man in der liste z.b.
urs:dub
er:sie
du:ich
hat und nur urs eingibt, als variable speichert, er dann automatisch die ganze zeile mit rauslöscht. das heisst man müsste im sed befehl irgendwie klarmachen, dass nach diesem wort noch eine ":blabla" konstruktion folgen soll und er diese ziele löschen soll.

folgendes hat leider einen fehler gemeldet:

Code: Alles auswählen

sed -ie "/´$VON$´:[A-z0-9][A-z0-9]/d" .mylist.cfg
bin für jede hilfe dankbar

yeti

Beitrag von yeti » 03.11.2006 02:45:08

Ist das nicht eher ein Fall für "grep -v" oder wenn's noch erweitert werden soll und noch komplizierter wird "awk"?

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 03.11.2006 20:12:16

Code: Alles auswählen

sed -i -e '/^urs:/d' DATEI

Antworten