Войти
ПрограммированиеПодсказкиОбщее

Sed — это неинтерактивный строчный редактор

Автор:

Sed — это неинтерактивный строчный редактор. Он принимает текст либо с устройства stdin, либо из текстового файла, выполняет некоторые операции над строками и затем выводит результат на устройство stdout или в файл. Как правило, в сценариях, sed используется в конвейерной обработке данных, совместно с другими командами и утилитами. Редактор берет свое начало в ОС Unix, однако в виду свободного распространения, его можно легко найти и под другие ОС.

Особенно эффективен для работы с такими понятиями как начало (обозначаеться как ^) и конец строки (обозначаеться как $).

Пример использования:

sed -e 's/super/puper/' filename

где sed использует ключ -e для того, чтобы определить, что следующая строка является инструкцией, или набором инструкций редактирования. Если инструкция является единственной, то использование этого ключа не является обязательным.

«Строгие» кавычки ('') предотвращают интерпритацию символов регулярного выражения как специальных символов командным интерпретатором.

Так же есть ключ -n, который  заставляет sed вывести только те строки, которые совпадают с указанным шаблоном. В противном случае (без ключа -n), будут выведены все строки. Здесь, ключ -e не является обязательным, поскольку используется единственная команда.

Примеры полезных команд:

8d                          - Удалить 8-ю строку.
s/super/puper/      - В каждой строке, заменить первое встретившееся слово "super" на слово "puper",
s/super/puper/g    - В каждой строке, заменить все встретившиеся слова "super" на "puper",
/GUI/d                    - Удалить все строки, содержащие "GUI".
s/GUI//g                - Удалить все найденые "GUI", оставляя остальную часть строки без изменений.
/^$/d                    - Удалить все пустые строки,
s/ *$//                    - Удалить все пробелы в конце каждой строки,
1,/^$/d                  -Удалить все строки до первой пустой строки, включительно.

Так же есть большой выбор регулярных выражений, который можно найти в любом документе по sed.

В случае  заинтересованности в подобных консольных командах имеет смысл посмотреть и на: awk (язык обработки шаблонов с C-подобным синтаксисом) и perl

25 марта 2006