Использование регулярных выражений с sed

Регулярные выражения позволяют адресоваться к строкам, обрабатываемым sed. Регулярное выражение указывается в косых чертах. Так, например, для вставки строки-разделителя после учетных записей, использующих в качест- ве оболочки bash, с предварительным удалением строк учетных записей пользователей, использующих оболочки, имена которых не заканчиваются на sh, можно задать команду, приведенную в примере 9.15.

 

Пример 9.15. Регулярные выражения в sed

 

$ sed -e '/[^s][^h]$/d' -e '/bash/a \

@@@@@@@@@@@@@@@@@@@@' /etc/passwd root:x:0:0:System Administrator:/root:/bin/bash

@@@@@@@@@@@@@@@@@@@@ bamboo:x:501:100::/home/bamboo:/bin/csh tania:x:502:502::/home/tania:/bin/bash

@@@@@@@@@@@@@@@@@@@@ figus:x:503:503::/home/figus:/bin/bash

@@@@@@@@@@@@@@@@@@@@ user1:x:504:100::/home/user1:/bin/bash


 

Опция -e команды sed используется для указания того, что дальше в ко- мандной строке будет задан сценарий sed (пример 9.15). Первый сценарий удаляет все строки, не заканчивающиеся на строку sh, а второй добавляет разделительную строку только после строк, заканчивающихся на bash.

Очень удобно использовать sed для замены строк в потоке, адресуясь к стро- кам с помощью регулярных выражений. Например, требуется заменить в по- токе, считанном из /etc/group, вхождения daemon в конце строк на angel (пример 9.16).

 

Пример 9.16. Замена с помощью регулярных выражений

 

$ sed 's/daemon$/angel/' /etc/group

 

 

К сожалению, sed работает только с очень ограниченным базовым набором регулярных выражений. Однако при замене подстрок имеется возможность вставлять в подстроку-замену исходную подстроку, удовлетворившую шаб- лону. Так, например, требуется вывести список всех файлов текущего ката- лога с суффиксом .txt так, чтобы к имени файлов была добавлена строка

.bak (пример 9.17).

 

Пример 9.17. Обращение к найденной строке с помощью &

 

$ ls *.txt | sed 's/txt$/&.bak/' dir.txt.bak

distfiles.txt.bak ps.txt.bak

 

Для обращения к подстроке, удовлетворившей найденному регулярному вы- ражению, в sed используется оператор &.

 








Дата добавления: 2015-06-12; просмотров: 723;


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

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.