Ich habe diese in mehreren DateienWie suchen kann mehrere Zeilen in einer Datei mit sed ersetzen
vars_files:
- "{{inventory_dir}}/common/vars/{{type1}}.yml"
- "{{inventory_dir}}/common/vars/{{type2}}.yml"
- "{{inventory_dir}}/common/vars/{{type3}}.yml"
- "{{inventory_dir}}/common/vars/{{type4}}.yml"
roles:
bla bla
Der Weg Linien sein Nun, da jedes Mal variieren kann ich chnage in mehrer so nicht konstant
habe Dateien von Hand. Ich suchte nach etwas mit sed, das ich ersetzen kann.
Ist es möglich, dass ich template
-Datei, die den Code enthält, die i wie
vars_files:
- "{{inventory_dir}}/common/vars/{{type22}}.yml"
- "{{inventory_dir}}/common/vars/{{type22}}.yml"
- "{{inventory_dir}}/common/vars/{{type32}}.yml"
- "{{inventory_dir}}/common/vars/{{type42}}.yml"
ersetzen wollen Dann sed über Muster in Dateien finden und mit oben Vorlage an derselben Stelle ersetzen.
Mein sed Wissen ist nur eine einzige Codezeile in mehreren Dateien zu ersetzen, wie
find files/ -type f -name "*.yml" -exec sed -i -re 's/\{\{inventory_dir\}\}\/vars\/common\.yml/\{\{inventory_dir\}\}\/common\/vars\/common.yml/g' {} \;
Aber ich bin nicht sicher, wie kann ich mit mehreren Linien zu tun.
ich von findinglines mit Vorlage denke zwischen vars_files
und roles:
und dann ersetzen, aber ich bin nicht sicher, wie kann ich lesen, dass
Haben Sie nach '[sed] multiline replace' gesucht? Es gibt 99 Q/As für dieses aber es ist wirklich eine zerbrechliche Lösung für Ihr Problem. Nicht empfohlen. Sie werden sicherlich Alternativen finden, die durch einige der anderen Q/As hier lesen. Viel Glück. – shellter