Intereting Posts
Назначение команды переменной Существуют ли какие-либо автономные руководства для специальных символов, используемых в терминале? Сценарий Bash не работает с crontab Как найти машину, с которой пользователь вошел в текущую машину с помощью ssh? Запрос повторной маршрутизации и ответ на сервер за VPN Есть ли команда, показывающая время, прошедшее при длительном процессе? Отправляйте мой IP-адрес на удаленный сервер каждый раз при загрузке Ошибка при установке Debian 7 на виртуальной машине (Ошибка при попытке запуска: chroot / target mount -t proc proc / proc) Создание содержимого сложной переменной вручную Когда пользователь может `sudo su`, но не` sudo su“? udev не видит изменений подсистемы drm на ноутбуке Поиск и замена Vim – Regex Почему некоторые файлы и папки скрыты? Ошибка при поиске несуществующей строки с EDITOR = vi crontab -e Что такое системный идентификатор раздела?

Найти текст в файле и вставить текст после него

У меня есть текстовый файл. Текстовый файл содержит содержимое ниже.

ServerName ServerAdmin webmaster@localhost DocumentRoot 

Мне нужно вставить текст www.mydomain.com после ServerName . Есть ли команда для этого?

Использование sed :

 sed 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt 

Захваченная группа \(ServerName\) используется в шаблоне замены как \1 .

Редактирование файла на месте, с резервным копированием, при условии, что GNU, ssed , busybox или некоторые BSD-реализации sed :

 sed -i.bak 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt 

Исходный файл будет храниться как file.bak а измененным файлом будет file.txt.bak .

Редактирование на месте, без резервного копирования (только для GNU, ssed или busybox ):

 sed -i 's/^\(ServerName\)$/\1 www.mydomain.com/' file.txt 

(для BSD используйте sed -i '' 's/... ).


Даже короче, без всякой захваченной группы:

 sed -i 's/^ServerName$/& www.mydomain.com/' file.txt 

Здесь & будет заменен на матч.

 sed --in-place 's/ServerName/& www.example.com/' /path/to/apache-vhost.conf 

Используя команду sed substitue:

 sed -i 's/ServerName/ServerName www.mydomain.com/' file.txt