Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

sed oder awk?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
NeoMan
Member
Member
Beiträge: 141
Registriert: 4. Okt 2004, 14:44

sed oder awk?

Beitrag von NeoMan »

Hi Leute,

nun brauch ich mal Eure Hilfe. Folgendes Problem:

Ich habe eine Textdatei, aus dieser möchte ich einen Abschnitt mit mehreren Zeile rauslöschen, anhand eines Schlagwortes. Nun bin ich kein sed bzw. awk Experte. Ich denke mit eins von den zwei Tools müßte das doch gehen.

Die Datei hat z.B. folgendes Format:

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName www.max-mustermann1.de
DocumentRoot /Pfad/zu/Document-root
User nobody
Group nobody
</VirtualHost>

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName www.max-mustermann2.de
DocumentRoot /Pfad/zu/Document-root
User nobody
Group nobody
</VirtualHost>

<VirtualHost xxx.xxx.xxx.xxx:80>
ServerName www.max-mustermann3.de
DocumentRoot /Pfad/zu/Document-root
User nobody
Group nobody
</VirtualHost>


Nun möchte ich z.B. durch das Wort max-mustermann2 den kompletten mittleren VirtualHost-Abschnitt rauslöschen. Die anderen zwei Abschnitte sollen natürlich drinne bleiben.

Also, sed und awk Freaks, ich bin für jeder Hilfe dankbar...

MfG NeoMan
Benutzeravatar
imat
Member
Member
Beiträge: 69
Registriert: 7. Apr 2004, 12:48
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von imat »

Ich würde sed nehmen, weil ich mit awk ned so gut kann :)

Code: Alles auswählen

sed -e '/Virtual/N;/max-mustermann2/,/\/Virtual/d' virtual.conf > newvirtual.conf
Server: irc.freenode.de Channel: #linux-club.de
NeoMan
Member
Member
Beiträge: 141
Registriert: 4. Okt 2004, 14:44

Beitrag von NeoMan »

Ok, danke... imat, dein Ansatz hat mir schon viel geholfen. Habe das sed-Statement noch erweitert.

Und damit funktioniert es...

sed "/VirtualHost xxx.xxx.xxx.xxx:80/{:loop;N;/\/VirtualHost/!bloop;/\<max-mustermann2\>/d;}"


MfG NeoMan
Antworten