Skocz do zawartości

Wyszukiwanie W Slowie Wzorca I Podstawienie Innej Wartosci


nagardd

Rekomendowane odpowiedzi

Witam,

 

Mam nastepujacy problem w Bash'u:

 

Zmienna $zmienna moze zawierac rozne wartosci.

Np. $zmienna=string1

$zmienna=string1/string2

 

Chcialbym aby skrypt wczytal zmienna i wyszukal zdefiniowany wzorzec znaku np. "/" i zamienil go na inny.

- Wzorzec moze byc dowolny

- Znak ktory jest szukany nie koniecznie musi istniec

 

W moim skrypcie zmienna $TZ moze miec rozne wartosci jak: Japan lub US/Pacific.

Nastepnie ta zmienna przekazuje do sed:

sed "s/timezone=.*/timezone=$TZ/g" sysidcfg > sysidcfg.new

Niestety gdy $TZ zawiera "/" to sed sie wywala.

 

Prosze o pomoc,

Daniel

 

 

 

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

W poleceniu s sed traktuje następny znak po s jako separator pól.

Zatem, aby uniknąć problemu z / można zrobić np.

sed "s#timezone=.*#timezone=$TZ#g" sysidcfg > sysidcfg.new

 

Dziala, dzieki wielkie.

Czytajac tutoriale na sieci do sed'a nie spotkalem sie z ta opcja "#".

 

Mam jeszcze jedno pytanie odnosnie mojego postu.

Czy da sie w bash'u czytac litera po literze zmienna zawierajaca dany text np "abcdef" i potem zamienic np "c" na "x" jesli spelniony zostanie jakis warunek?

 

Pozdrawiam,

Daniel

Odnośnik do komentarza
Udostępnij na innych stronach

Czy da sie w bash'u czytac litera po literze zmienna zawierajaca dany text np "abcdef" i potem zamienic np "c" na "x" jesli spelniony zostanie jakis warunek?

Nie napisałeś o co konkretnie chodzi (najlepiej jakiś przykład) więc nie jestem w stanie udzielić konkretnej odpowiedzi ;]

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...