Назад | Перейти на главную страницу

SED Найти и заменить с помощью «ИЛИ»

После небольшого поиска в Google / собственных исследований я не нашел окончательного ответа,

Я хочу выполнить поиск во всей папке / var / www / html / на предмет появления «127.0.0.1» и заменить их IP-адресом сервера (мы перемещаем базу данных из локального ящика).

Это касается Localhost и 127.0.0.1. Пока я мог просто бежать

find * | xargs sed -i a/127.0.0.1/ser.ver.ip.addr/g

дважды, один раз заменив 127.0.0.1 и localhost, я бы предпочел не запускать две команды.

Могу ли я выполнить операцию ИЛИ, не нарушив ее?

Что-то вроде:

find * | xargs sed -i a/127.0.0.1|localhost/ser.ver.ip.addr/g

----------------------------редактировать--------------------- -

Я нашел чуть более надежный способ поиска и замены,

find * -type f -exec sed -i 's/127.0.0.1/ser.ver.ip.addr/g' {} \;

Однако я не могу заставить поисковый запрос соответствовать 127.0.0.1 ИЛИ localhost.

Я думаю, вам придется заключить это в кавычки:

find * | xargs sed -i "a/127.0.0.1|localhost/ser.ver.ip.addr/g"
find . -type f -print | xargs sed -i -e 's/127.0.0.1/207.200.19.177/g' -e 's/localhost/207.200.19.177/g'