[gelöst] Löschen vieler Begriffe in einer Liste klappt nicht

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
debianator
Beiträge: 92
Registriert: 24.11.2011 16:30:00

[gelöst] Löschen vieler Begriffe in einer Liste klappt nicht

Beitrag von debianator » 07.02.2012 19:05:31

Hi, ich steh schon wieder auf dem Schlauch.

Wollte gerade nacheinander aus einer Textdatei Zeilen auslesen und diese Zeilen in einer weiteren Textdatei löschen.

Also so:

Code: Alles auswählen

for x in `grep -v ^# zeilen_zum_löschen.txt`; do
sed '/$x/d' liste.txt
done
Das funktioniert aber nicht.

Was mache ich denn da falscht?
Zuletzt geändert von debianator am 07.02.2012 20:54:08, insgesamt 2-mal geändert.

yeti

Re: Löschen vielen Begriffe in einer Liste klappt nicht

Beitrag von yeti » 07.02.2012 19:23:08

debianator hat geschrieben:

Code: Alles auswählen

for x in `grep -v ^# zeilen_zum_löschen.txt`; do
sed '/$x/d' liste.txt
done
Das $x im sed-Ausdruck bleibt $x weil in Single-Quotes...
Ob der Rest des Konstruktes zielführend ist, habe ich allerdings noch nicht betrachtet, denn ich würde es aus Gewohnheit eher mit awk lösen...

debianator
Beiträge: 92
Registriert: 24.11.2011 16:30:00

Re: Löschen vielen Begriffe in einer Liste klappt nicht

Beitrag von debianator » 07.02.2012 19:42:47

Achja in Single-Quotes, ne das konnte nicht klappen.

Hat dann vielleicht jemand eine Idee was da sonst anstatt sed gut anwendbar währe?

yeti

Re: Löschen vieler Begriffe in einer Liste klappt nicht

Beitrag von yeti » 07.02.2012 20:00:32

Code: Alles auswählen

$ cat loeschliste.txt 
# Ampelfarben
rot
# noch mehr Kommentar
gelb
gruen
$ cat farbliste.txt 
# wuest viele Farben
blau
gelb
rot
braun
lila
# hust!
t-farbe
gruen
fussich
$ awk 'FNR==1 { FILENR++ } FILENR==1 && !/^#/ && !B[$0] { B[$0]=1 } FILENR==2 && !($0 in B)' loeschliste.txt farbliste.txt 
# wuest viele Farben
blau
braun
lila
# hust!
t-farbe
fussich

debianator
Beiträge: 92
Registriert: 24.11.2011 16:30:00

Re: Löschen vieler Begriffe in einer Liste klappt nicht

Beitrag von debianator » 07.02.2012 20:50:59

Achja, nicht löschen, einfach nicht mit ausgeben. Daran hab ich garnicht gedacht.

1A, vielen Dank.

Antworten