русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Необходимые сведения


Дата добавления: 2013-12-23; просмотров: 687; Нарушение авторских прав


Лабораторная работа №16. Потоковый редактор sed

 

Цель работы: освоить базовые принципы работы с потоковым редактором sed.

 

Редактор sed (Stream EDitor) не является текстовым редактором в обычном понимании. Он представляет собой средство преобразования и отбора данных, поступающих из стандартного ввода. Пользователю достаточно задать последовательность команд для обработки, всю остальную работу sed выполнит за один проход автоматически. При этом исходные файлы остаются без изменения, копия стандартного ввода помещается в буфер редактирования, а изменения перенаправляются на стандартный вывод (по умолчанию) или в файл.

Общий синтаксис использования редактора имеет вид:

sed [options] 'command' [files].

Команды редактирования command рекомендуется заключать в одинарные кавычки, чтобы избежать интерпретации специальных символов.

В качестве options могут выступать:

-n — отключает вывод в стандартный поток. По умолчанию отображается каждая входная строка. Осуществить вывод нужных строк в дальнейшем можно с помощью команды p;

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

Общий синтаксис command следующий:

[addr1,[addr2]][!]command [arguments],

где addr1, addr2 — номера (адреса) строк, над которыми выполняются преобразования, command — односимвольная команда редактирования, arguments — аргументы (требуются некоторым командам).

Указание адреса может иметь вид:

n — строка с номером n;

n,m — все строки с номерами в диапазоне от n до m;

$ — последняя строка;

/pattern/ — все строки, соответствующие базовому регулярному выражению pattern.

Символ ! после указания адреса означает, что будет производиться редактирование строк, не соответствующих диапазону.

Основными односимвольными командами являются p,=,a,i,d,s,q:



[addr1,[addr2]]p — вывод указанных строк;

[addr]= — вывод номеров строк;

a — добавление одной или нескольких строк текста после адресуемой строки; общий синтаксис команды

[addr]a\

text\

text\

text

Здесь addr может быть либо номером строки, либо регулярным выражением. В последнем случае строк может быть несколько. Диапазон адресов указать нельзя.

i— вставка текста перед строкой. Работа аналогична предыдущей команде. Общий синтаксис;

[addr]i\

text\

text\

text

 

[addr1,[addr2]]d — удаление строк;

[addr1,[addr2]]s/pattern1/pattern2[flag] — замена указанного шаблона pattern1 заданным текстом pattern2. В качестве flag может быть указано:

g — замена каждого совпадения с pattern1 (по умолчанию производится только первая подстановка);

p — вывод на экран строки, в которой была сделана подстановка. Если подстановок было несколько, то строка будет выведена соответствующее количество раз.

[addr]q — завершение работы после того, как была достигнута адресуемая строка.

 

Обычно при работе с sed указывается больше, чем одна команда. Несколько команд редактора можно объединить в группу двумя способами:

[addr1,[addr2]]{command1; command2;… commandN;}

или

[addr1,[addr2]]{

command1

command2

commandN

}

Первый способ больше подходит для набора в командной строке, второй предназначен для записи команд редактора в сценарий.

Примеры:

sed -n '1,10p' textfile — вывод первых 10 строк файла textfile.

sed -n '1,10/Stop/p' textfile — вывод строк из диапазона первых 10 строк, в которых содержится буквосочетание Stop.

sed 's/\.\!/g' textfile — замена всех точек символом !.

echo $PWD | sed 's/^\///g' — удаление начального слэша из имени текущего каталога (замена экранированного символа / на пустую подстроку. Флаг g указывает, что необходимо выполнить все замены).

 



<== предыдущая лекция | следующая лекция ==>
Ход работы | Необходимые сведения


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.