Derzeit ich eine Config-Datei die folgende Form haben:Bash für geschweifte Klammer Manipulation begrenzt Konfigurationsdateien
under Time {
TimeStep = 0.001;
MaxTime = 0.2;
MaxIts = 400;
Type = Implicit;
under Implicit {
Type = ForwardEuler;
Jacobian = FiniteDifference;
under Newton {
MaxIts = 20;
Eps = 0.01;
}
}
}
Erste Frage: Ich möchte eine Reihe von Bash-Skripte schreiben, kann
- Set Eigenschaft = Wert in einer Datei; füge es hinzu, wenn es nicht da ist.
- erhalten Eigenschaft aus einer solchen Datei.
line-by-line editting hier nicht geeignet ist: MaxIts
zum Beispiel, müssen Sie das Skript zwischen Time.MaxIts
und Time.Implicit.MaxIts
unterscheiden.
Zweite Frage: Ich möchte ein Bash-Skript schreiben, die oben in transformiert:
Time.TimeStep = 0.001;
Time.MaxTime = 0.2;
Time.MaxIts = 400;
Time.Type = Implicit;
Time.Implicit.Type = ForwardEuler;
Time.Implicit.Jacobian = FiniteDifference;
Time.Implicit.Newton.MaxIts = 20;
Time.Implicit.Newton.Eps = 0.01;
so dass sed oder awk tun können, einfach den Job.
Und was hast du bisher versucht? Wo steckst du fest? – dimo414
Im Gegensatz zu dem, was Sie zu glauben scheinen, ist StackOverflow kein kostenloser Codierungsdienst. Es wird erwartet, dass Sie Ihren Code zusammen mit relevanten Beispieleingaben, erwarteten Ausgaben (was Sie getan haben), tatsächlichen Fehlermitteilungen sowie Ihren Kommentaren darüber, wo Sie steckenbleiben, zeigen. Bitte zeigen Sie Ihre besten Bemühungen, um dieses Problem zu lösen (verwenden Sie das Tool {} oben links im Eingabefeld, um code/data/output/errMsgs korrekt zu formatieren), und die Leute können Ihnen vielleicht helfen. Viel Glück. – shellter
Auch die obige Syntax für die geschweifte Klammer ist keine [reguläre Sprache] (https://en.wikipedia.org/wiki/Regular_language), daher ist es nicht möglich, mit regulären Ausdrücken zu analysieren. – dimo414