sed append
Введение | |
Пример | |
Добавить текст в конец файла | |
Статьи про SED |
Введение
С помощью sed append можно добавлять записи в файлы
Чтобы использовать команду sed append нужна опция 'a'
Общий синтаксис выглядит так:
sed '[range] a string_to_append' file
Перевод
sed ' [диапазон] a добавляемые_символы' файл
range - это область в которой нужно делать замену. Задаётся через условие то есть
является указанием шаблона или образца. Всегда должен быть внутри / /
string_to_append - это те символы, которые нужно дописать в файл
file - это имя файла (можно с путём до файла) в котором эта замена будет произведена
Пример
Рассмотрим файл sites.txt
cat sites.txt
Авиасейлз Travel
Booking.com Hotels
Hotellook Hotels
Добавим после строки Booking.com Hotels строку: eth1.ru IT
sed '/^B/ a eth1.ru IT' sites.txt
Авиасейлз Travel
Booking.com Hotels
eth1.ru IT
Hotellook Hotels
append не изменяет содержание файла. Выполните снова
cat sites.txt
Авиасейлз Travel
Booking.com Hotels
Hotellook Hotels
Файл не изменился
В той же самой команде замените a на i (insert - вставить)
Авиасейлз Travel
eth1.ru IT
Booking.com Hotels
Hotellook Hotels
Теперь новая строка стала выше чем шаблон. Файл по-прежнему не меняется.
Если вы используете Ubuntu выполните
sed -n 'p' /etc/ntp.conf
И найдите там строки вида #pool 0.ubuntu.pool.ntp.org
Убедиться, что они там есть можно командой
sed -n '/ubuntu/p' /etc/ntp.conf
#pool 0.ubuntu.pool.ntp.org iburst #pool 1.ubuntu.pool.ntp.org iburst #pool 2.ubuntu.pool.ntp.org iburst #pool 3.ubuntu.pool.ntp.org iburst pool ntp.ubuntu.com
Удалить строки вида #pool 0.ubuntu.… можно командой
sed '/^#pool\s[0-9]\.ubuntu/ d' /etc/ntp.conf
Напоминаю, что \s означает один пробел
[0-9] означает одну любую цифру
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги
Добавить текст в конец файла
Чтобы добавить текст TEXT в конец файла file воспользуйтесь командой
sed -i -e '$aTEXT' file
Изначально файл не должен быть пустым
Эта же команда в Make файле будет выглядеть так
.PHONY: addtoend addtoend: @sudo sed -i -e '$$aTEXT' file
Если нужно добавить текст после каждой строки файла выполните
sed -i -e 'aTEXT' file