Mam problem z ustaleniem, jak używać sed
do wyszukiwania i zamiany ciągów zawierających znak /
w pliku tekstowym /etc/myconfig
.sed wyszukaj i zamień ciągi zawierające/
Na przykład w moim istniejącego pliku tekstowego, mam:
myparam /path/to/a argB=/path/to/B xo
i chcę ten otrzymuje brzmienie:
myparam /path/to/c argB=/path/to/D xo
próbowałem robić to w bash:
line='myparam /path/to/a argB=/path/to/B xo'
line_new='myparam /path/to/c argB=/path/to/D xo'
sed -i 's/$line/$line_new/g' /etc/myconfig
Ale nic się nie dzieje.
Próba
grep -rn "$line" /etc/myconfig
ma powrócić mnie 'myparam /path/to/a argB=/path/to/B xo'
chociaż.
Jaki jest prawidłowy sposób wyrażenia mojej komendy sed
w celu wykonania tego wyszukiwania i zastąpienia i poprawnego działania z poleceniem /
? (Sądzę, że ten znak jest jednym z problemów, ponieważ użyłem podobnej komendy sed
, aby wyszukać i zastąpić inną linię w pliku tekstowym bez żadnych problemów, a ta linia nie ma postaci /
.
Zasady zastępowania i cytowania dotyczą raczej basha, a nie sed. Możesz dodać bash jako tag. – KarlM
ok. doda 'bash' jako tag. –