sed -e
Введение | |
Пример | |
Другие статьи о sed |
Введение
Что нам говорит мануал по 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
https://eth1.ru/about/ Travel
https://eth1.ru/about/ Hotels
https://eth1.ru/about/ Hotels
TopBicycle.ru Bicycles
https://eth1.ru/about/ Bicycles
HeiHei.ru Travel
https://eth1.ru/about/ Android
https://eth1.ru/about/ Android
https://eth1.ru/about/ Books
https://eth1.ru/about/ Education
https://eth1.ru/about/ Education
https://eth1.ru/about/ VPN
https://eth1.ru/about/ Education
https://eth1.ru/about/ Insurance
https://eth1.ru/about/ Insurance
https://eth1.ru/about/ Insurance
https://eth1.ru/about/ Android
https://eth1.ru/about/ Hosting
https://eth1.ru/about/ Laptops
…
Предположим, что нужно сделать новый список сайтов
new.txt
только вместо Bicycles записать Bikes, а сайты по страхованию вообще не нужны
Выполнить сразу две команды поможет флаг -e
sed -e 's/Bicycles/Bikes/' -e '/Insurance/d' sites.txt > new.txt
cat new.txt
AndreyOlegovich.ru IT
https://eth1.ru/about/ Travel
https://eth1.ru/about/ Hotels
https://eth1.ru/about/ Hotels
TopBicycle.ru Bikes
https://eth1.ru/about/ Bikes
HeiHei.ru Travel
https://eth1.ru/about/ Android
https://eth1.ru/about/ Android
https://eth1.ru/about/ Books
https://eth1.ru/about/ Education
https://eth1.ru/about/ Education
https://eth1.ru/about/ VPN
https://eth1.ru/about/ Education
https://eth1.ru/about/ Android
https://eth1.ru/about/ Hosting
https://eth1.ru/about/ Laptops
…
Удалить всё что между скобками
Включая сами скобки можно выполнив
sed -i -e 's/\[[^][]*\]//g' sample.txt