Szukałem w Internecie tej odpowiedzi i nie mogę jej znaleźć.Jak używać sed do zamiany zmiennej pliku konfiguracyjnego?
Mam plik konfiguracyjny zawierający:
VAR1=VALUE1
VAR2=VALUE2
VAR3=VALUE3
VAR4=VALUE4
VAR5=VALUE5
VAR6=VALUE6
I chcę zmienić wartość VAR5 jest od VALUE5 do VALUE10. Niestety nie znam wartości VALUE5, więc nie mogę jej wyszukać. Zasadniczo potrzebuję użyć sed (lub cokolwiek innego), aby zastąpić wartość VAR5 dowolną wartością, którą chcę zastąpić.
Edytuj: Dzięki potwierdzonemu rozwiązaniu udało mi się użyć następujących w BASH, aby edytować mój plik konfiguracyjny, przekazując argument do skryptu Bash. Ukośniki zostały zastąpione przecinkami, ponieważ parametr, który przekazuję do skryptu, zawiera ukośniki.
sed -i 's,^\(THISISMYVARIABLE=\).*,\1'THISISMYVALUE',' config.cfg
Mój plik zawierał:
THISISMYVARIABLE=SOMEOLDVALUE
Po uruchomieniu komendy sed w bash
THISISMYVARIABLE=THISISMYVALUE
Skąd pochodzi "VALUE10"? Czy pochodzi z innej linii w tym samym pliku? A może jest to tylko dowolna wartość? – Sildoreth
VAR5 w moim pliku konfiguracyjnym to USER_INSTALL_DIR, a VALUE10 to wszystko, może to być śmieci. Chcę ustawić VAR5 lub w moim przypadku USER_INSTALL_DIR na zmienną, którą przechodzę do niej poprzez skrypt bash. Poniższy pracował dla mnie dzięki komentarzowi anubhava. Zamieniłem również ukośniki przecinkami, ponieważ parametr, który przyjmie mój skrypt basha, będzie zawierał ukośniki, ponieważ przechodzą one przez katalog użytkownika. – SomeGuyOnAComputer