Re: viele dateien auf einmal modifizieren
* Leune, Tilman <Tilman.Leune@stadt.lueneburg.de> [021009 19:02]:
> Ich möchte in ca 400 nahezu gleichen konfigurationsdateien eine Zeile
> einfügen respektive aktualisieren
>
> bedingungen:
>
> WENN $alte_befehls_zeile nicht existiert, füge $neue_befehlszeile ein
> vor $Zeile_mit bestimmten_Inhalt. SONST ersetze &alte_befehls_zeile
> durch $neue_befehlszeile
Ohne Rücksicht auf Performance:
jsa@anna:~/temp$ cat file1
foo
bar
Zeile mit bestimmtem Inhalt
baz
jsa@anna:~/temp$ cat file2
foo
bar
Alte Befehlszeile
baz
jsa@anna:~/temp$ cat skript
#!/bin/bash
alte_befehlszeile="Alte Befehlszeile"
neue_befehlszeile="Neue Befehlszeile"
Zeile_mit_bestimmtem_Inhalt="Zeile mit bestimmtem Inhalt"
for f in file?
do
mv "$f" "$f.bak"
if grep "$alte_befehlszeile" "$f.bak" >/dev/null
then
sed 's/^'"$alte_befehlszeile"'$/'"$neue_befehlszeile"'/' "$f.bak" >"$f"
else
sed '/^'"$Zeile_mit_bestimmtem_Inhalt"'$/{x;s/^/'"$neue_befehlszeile"'/;G;}' "$f.bak" >"$f"
fi
done
jsa@anna:~/temp$ ./skript
jsa@anna:~/temp$ cat file1
foo
bar
Neue Befehlszeile
Zeile mit bestimmtem Inhalt
baz
jsa@anna:~/temp$ cat file2
foo
bar
Neue Befehlszeile
baz
Beste Grüsse - Jürgen
Reply to: