sed -e

Введение

Что нам говорит мануал по sed

man sed

-e script, --expression=script add the script to the commands to be executed

На практике это означает, что можно выполнить несколько разных действий. То есть какой-то скрипт, а не просто одну команду.

Например

sed -e 's/string1/string2/g' -e 's/string4/string5/g'

Заменит сначала string1 на string2 а потом string4 на string5

Пример

Рассмотрим файл sites.txt

less sites.txt

AndreyOlegovich.ru IT
Авиасейлз Travel
Booking.com Hotels
Hotellook Hotels
TopBicycle.ru Bicycles
Велодрайв Bicycles
HeiHei.ru Travel
Xiaomi Android
Samsung Android
Book24 Books
GeekBrains Education
Нетология Education
TurboVPN VPN
Pluralsight Education
СовКомСтрахование Insurance
Полис 812 Insurance
Полис 812 Insurance
Vivo Android
Reg.ru Hosting
OLDI Laptops
…

Предположим, что нужно сделать новый список сайтов new.txt только вместо Bicycles записать Bikes, а сайты по страхованию вообще не нужны

Выполнить сразу две команды поможет флаг -e

sed -e 's/Bicycles/Bikes/' -e '/Insurance/d' sites.txt > new.txt
cat new.txt

AndreyOlegovich.ru IT
Авиасейлз Travel
Booking.com Hotels
Hotellook Hotels
TopBicycle.ru Bikes
Велодрайв Bikes
HeiHei.ru Travel
Xiaomi Android
Samsung Android
Book24 Books
GeekBrains Education
Нетология Education
TurboVPN VPN
Pluralsight Education
Vivo Android
Reg.ru Hosting
OLDI Laptops
…

Удалить всё что между скобками

Включая сами скобки можно выполнив

sed -i -e 's/\[[^][]*\]//g' sample.txt

Автор статьи: Андрей Олегович