config file richtig parsen (String-Suche innerhalb bestimmter Kontextebene)
Hallo allerseits,
ich bräuchte mal die Hilfe der echten bash-Skript-Gurus unter Euch :
Ich habe ein Konfigurationsfile der Art :
target = {
identifier = "gesuchter_Name" # oder anderer, nicht-signifikanter Name
parameter = "......."
usw = "......"
}
target2 = {
identifier = "gesuchter Name" # s.o.
parameter = "......."
usw = "......"
}
"gesuchter Name" kann also unter target oder target2 stehen (XOR). Es sind zwei versch. Identifier, er taucht also nur oben oder unten auf.
Prinzipiell würde ich das gern auf ein target3 { .... } erweiterbar halten.
Mit einem grep -n erhielte ich die Zeilennummer, in der mein Suchmuster auftaucht.
Wie komme ich an den Inhalt des Anfangs der *vorigen* Zeile, also an das richtige target ?
Muss ich da überhaupt mit der Zeilennummer weiter hantieren, oder gibt es für dieses "linenumber - 1" und dann Anfang der Zeile ( ^) bis Leerzeichen (oder = )
einen eleganteren Weg, mit sed z.B. ?
Als Ergebnis soll jedenfalls der Kontext herauskommen, "target" oder "target2", und dieser String soll in eine Variable zur Weiterverarbeitung.
Leider stoße ich hiermit bislang noch an meine Grenzen, und hoffe, dass mir jemand weiterhelfen kann...
Schönen Gruß an die Administrator-Community und Danke schon mal !
== Newton ==
ich bräuchte mal die Hilfe der echten bash-Skript-Gurus unter Euch :
Ich habe ein Konfigurationsfile der Art :
target = {
identifier = "gesuchter_Name" # oder anderer, nicht-signifikanter Name
parameter = "......."
usw = "......"
}
target2 = {
identifier = "gesuchter Name" # s.o.
parameter = "......."
usw = "......"
}
"gesuchter Name" kann also unter target oder target2 stehen (XOR). Es sind zwei versch. Identifier, er taucht also nur oben oder unten auf.
Prinzipiell würde ich das gern auf ein target3 { .... } erweiterbar halten.
Mit einem grep -n erhielte ich die Zeilennummer, in der mein Suchmuster auftaucht.
Wie komme ich an den Inhalt des Anfangs der *vorigen* Zeile, also an das richtige target ?
Muss ich da überhaupt mit der Zeilennummer weiter hantieren, oder gibt es für dieses "linenumber - 1" und dann Anfang der Zeile ( ^) bis Leerzeichen (oder = )
einen eleganteren Weg, mit sed z.B. ?
Als Ergebnis soll jedenfalls der Kontext herauskommen, "target" oder "target2", und dieser String soll in eine Variable zur Weiterverarbeitung.
Leider stoße ich hiermit bislang noch an meine Grenzen, und hoffe, dass mir jemand weiterhelfen kann...
Schönen Gruß an die Administrator-Community und Danke schon mal !
== Newton ==
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127598
Url: https://administrator.de/contentid/127598
Ausgedruckt am: 22.11.2024 um 19:11 Uhr