Как заменить строку #listen_addresses = 'localhost' на строку listen_addresses = '*' используя sed в Linux
Пробую команду:
sed "s/#listen_addresses = 'localhost'/listen_addresses = '*'" /somefile
Получаю ошибку:
sed: -e expression #1, char 58: unterminated `s' command
Ответы (2 шт):
Автор решения: 69 420 1970
→ Ссылка
#!/bin/bash
target="localhost"
replacement="'*'"
perl -wE'
BEGIN { $p = shift; $r = shift };
$_=q(#listen_addresses = 'localhost'); s/\Q$p/$r/; say
' "$target" "$replacement"
Выведет:
#listen_addresses = '*'
Perl Oneline:
perl -wE 'BEGIN { $p = shift; $r = shift }; $_=q(#listen_addresses = localhost); s/\Q$p/$r/; print' "localhost" "'*'"
Автор решения: Artem Solov'yev
→ Ссылка
Правильная команда:
sed -i "/listen/s/\#listen_addresses\ =\ 'localhost'/listen_addresses = '*'/g" /somefile