Strona 1 z 1

[Bash|Python] Stworzenie templata z pliku konfiguracyjnego

: 25 lutego 2016, 12:58
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?

: 25 lutego 2016, 13:05
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 :)

: 25 lutego 2016, 20:37
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.