| 

.NET C# Java Javascript Exception

2
Hallo,
ich hab eine txt Datei die in etwa wie folgt aussieht:

sdasdasda /* Name1 */ = {
asgdfhee /* Subname11 */,
asghjhee /* Subname12 */,
asgfhjge /* Subname12 */,
}

erthrzjhr /* Name2 */ = {
131h78ee /* Subname21 */,
as311hee /* Subname22 */,
a11312gf /* Subname22 */,
}

Ich möchte jetzt gerne per Shellscript einen bestimmten Block erkennen z.B. Name2 und diesen vollständig entfernen, so dass die Ausgabe so aussieht:

sdasdasda /* Name1 */ = {
asgdfhee /* Subname11 */,
asghjhee /* Subname12 */,
asgfhjge /* Subname12 */,
}


Habe mir folgenden logischen Ablauf überlegt:
1.Durchsuche txt nach einem Blockanfang
2.Wenn Blockanfang gefunden leite Ausgabe in Variable um, bis Block endet
3.Durchsuche Variable nach gewünschten Muster
4.Wenn Muster vorhanden verwerfe den Block, andernfalls hänge ihn an die Ausgabe an.

Hab mich mit awk vertraut gemacht, aber so richtig komme ich nicht weiter. Ich weiß nicht, wie ich ab dem finden eines Strings diesen + die folgenden Zeilen bis zum ende des Blocks in eine Variable umleiten kann?

Grüße
04.07.2011
michael2011 396 1 8
1 Antwort
2
Machs doch einfach mit RegEx:

^([^\r\n])*?/\* Name2 \*/.*?=.*?}

Mit den RegEx-Optionen "Dot maches newline" und "^$ macht at line breaks".
05.07.2011
Floyd 14,6k 3 9

Stelle deine Shell-Frage jetzt!