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

Похожие статьи
SED
find + sed
p: sed print
s: sed substitute
a i d: append insert delete
Несколько команд одновременно
-e: --expression=script
d: Удаление
sed через ssh
find + sed
Групповая замена
sed в vim
Linux
Bash
Bash Scripting
AWK
GREP

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: