[Bash|Python] Stworzenie templata z pliku konfiguracyjnego

Potrzebujesz pomocy z C, C++, perl, python, itp.
buker999
Posty: 89
Rejestracja: 18 października 2011, 21:22
Lokalizacja: Warszawa

[Bash|Python] Stworzenie templata z pliku konfiguracyjnego

Post autor: buker999 »

Mam pliczek konfiguracyjny o strukturze:

Kod: Zaznacz cały

Zmienna=wartosc
np:

Kod: Zaznacz cały

apache2_patch=/etc/apache2
php_version=5.1.0
Mam takich pliczków bardzo dużo. Szukam jakiegoś skryptu, który by wartość zamieniał na {{zmienna}} czyli wynikowy plik powinien wyglądać tak:

Kod: Zaznacz cały

apache2_patch={{apache2_patch}}
php_version={{php_version}}
Nie mam jakoś pomysłu jak to ugryźć. jeśli chodzi o wartości to nie są mi potrzebne. Czy ktoś jest w stanie mi w tym pomoc?
buker999
Posty: 89
Rejestracja: 18 października 2011, 21:22
Lokalizacja: Warszawa

Post autor: buker999 »

Przepraszam za tak głupi wątek...

Rozwiązanie jakie zrobiłem:

Kod: Zaznacz cały

 grep '=' plik.config| cut -d= -f1|xargs -i$ echo '$={{ $ }}' > plik.config.template
Można skasować. Chyba że ktoś chce zaproponować bardziej optymalne rozwiązanie :)
Awatar użytkownika
lizard
Beginner
Posty: 287
Rejestracja: 08 lutego 2016, 18:47

Post autor: lizard »

Kod: Zaznacz cały

sed -ie 's/^\([^=[:space:]]*\)[[:space:]]*=.*/\1={{\1}}/' plik.config
Uwaga na opcję "-i" polecenia sed:

Kod: Zaznacz cały

SED(1)                           User Commands                          SED(1)

[...]

       -i[SUFFIX], --in-place[=SUFFIX]

              edit files in place (makes backup if SUFFIX supplied)
I przy okazji uwaga do xargs:

Kod: Zaznacz cały

XARGS(1)                    General Commands Manual                   XARGS(1)

[...]

       -i[replace-str]
              This option is a synonym for  -Ireplace-str  if  replace-str  is
              specified,  and  for -I{} otherwise.  This option is deprecated;
              use -I instead.
ODPOWIEDZ