Потоковый текстовый редактор sed
Краткое введение в sed (по-русски)
Хороший подробный учебник по sed (in english)
Средней вменяемости и подробности учебник по sed (по-русски)
План
- Как выглядит православная версия песенки про 99 бутылок пива:
99 bottles of beer on the wall, 99 bottles of beer, take one down, pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the wall, 98 bottles of beer, take one down, pass it around, 97 bottles of beer on the wall. ... 2 bottles of beer on the wall, 2 bottles of beer, take one down, pass it around, 1 bottle of beer on the wall. 1 bottle of beer on the wall, 1 bottle of beer, take one down pass it around, no more bottles of beer on the wall.
- входные | sed 'программа' | выход
- программа: команда; команда
- команда: адрес собственно_команда
- адрес: собственно_адрес,собственно_адрес
- собственно_адрес: номер строки, $, /регвыр/
- пример команд: =, p, d
- флаг -r (существуют диалекты)
- команда: s/регвыр/замена/флаги
- регвыр = текст | регвыр|регвыр | регвыр регвыр | (регвыр) | регвыр *
- примеры
- дополнения к регвыр: [], [^]
- ^, $
\1..\9; \0 = &
- \n\r\t
\<, \>
- флаги для s: g, p
- читайте маны и info! Про sed есть ещё другие полезные штуки тоже.
Задания
Упражнения
Напишите вызов команды sed, который будет получать на стандартный вход полные имена файлов (по одному имени на строку) и пишет на выход имена директорий, в которых файлы лежат (т.е. всё до последнего /)