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

Aviasales Travel
Booking.com Hotels
Hotellook Hotels

Добавим после строки Booking.com Hotels строку: eth1.ru IT

sed '/^B/ a eth1.ru IT' sites.txt

Aviasales Travel
Booking.com Hotels
eth1.ru IT
Hotellook Hotels

append не изменяет содержание файла. Выполните снова

cat sites.txt

Aviasales Travel
Booking.com Hotels
Hotellook Hotels

Файл не изменился

В той же самой команде замените a на i (insert - вставить)

Aviasales 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

Article author: Andrei Olegovich

Похожие статьи
SED
find + sed
p: sed print
s: sed substitute
a i: append insert
Multiple commands
-e: --expression=script
d: Delete
sed via ssh
find + sed
Sustitution grouping
sed in vim
Linux
Bash
Bash Scripting
AWK
GREP

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: