Библиотека сайта rus-linux.net
Руководство по Bash для начинающих | ||
---|---|---|
Назад | Глава 5: Потоковый редактор GNU sed | Вперед |
Подводим итог
Потоковый редактор sed является мощным инструментом, работающим из командной строки, с помощью которого можно обрабатывать потоки данных: он может считывать входные данные из конвейера. Это позволяет его использовать в неинтерактивном режиме.
В редакторе sed используются команды, похожие на команды редактора vi; также можно пользоваться регулярными выражениями
Редактор sed может читать команды из командной строки или из скрипта. Он часто используется для выполнения действий по поиску и замене строк, содержащих шаблон.
Упражнения
Эти упражнения предназначены для дальнейшей демонстрации того, что может делать sed.
- Выдайте список файлов, находящихся в директории
scripts
, которые оканчиваются на ".sh". Имейте в виду, что вам, возможно, придется использовать команду unalias ls. Поместите результат во временный файл. - Создайте список файлов, имеющихся в директории /usr/bin, в которых в качестве второго символа используется буква "а". Поместите результат во временный файл.
- Удалите первые три строки каждого временного файла.
- Выдайте в стандартный вывод только те строки, в которых есть шаблон "an".
- Создайте файл с командами sed, выполняющими два предыдущих задания. Добавьте в этот файл еще одну команду, которая добавляет строку, например, "*** This might have something to do with man and man pages ***" перед каждым вхождением строки "man". Проверьте результаты.
- Создайте длинный список файлов, использовав в качестве входа корневой директорий "/ ". Создайте файл с командами sed, которые проверяют, является ли файл символической ссылкой или обычным файлом. Если файл является символической ссылкой, поставьте перед ним строку "--This is a symlink--" ("--Это символическая ссылка--"). Если файл является обычным файлом, добавьте в ту же самую строку, например, комментарий "<--- this is a plain file" ("<--- это обычный файл").
- Создайте скрипт, показывающий в файле строки, содержащие пробелы в конце строки. В этом скрипте должен использоваться sed и выдаваться понятный пользователям результат.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Неинтерактивное редактирование | Глава 6 |