3. Методические указания.
Sed - потоковый текстовый редактор
sed [опции] ['скрипт_sed'] [файл...]
Утилита sed производит редактирование текстовых файлов в соответствии с операторами редактирования, заданными в скрипте_sed в командной строке или в файле. Если не указано ни одного файла , используется стандартный ввод. Результат работы sed направляется в выходной поток, если иное не задано в операторах редактирования.
Таблица 1. Опции.
-f файл |
чтение скрипта не из командной строки, а из файла. |
|
-n |
подавление печати всех просмотренных sed строк; выводятся только те строки, печать которых определена в командах редактирования. |
Операторы редактирования имеют формат:
[адрес1[,адрес2]] команда
[адрес1[,адрес2]] { команда1, ... командаN }
Адрес определяет строки, к которым применяется команда или команды. Если заданы и первый, и второй адреса, то команда применяется к строкам от первого до второго адреса включительно. Если задан только первый адрес, то команда применяется к строкам, определяемым этим адресом. Если адреса не заданы, то команда применяется ко всем строкам файла.
Адрес может задаваться:
номером строки;
шаблоном - регулярным выражением, заключенным в символы "/.../";
специальным символом "$", адресующим последнюю строку файла.
Таблица 2. Команды редактирования.
p |
вывод адресуемых строк на печать. |
||||||||
= |
вывод на печать номеров адресуемых строк. |
||||||||
a |
добавление текста после адресуемых строк. Формат команды: [адрес]a\ текст \ . . . текст |
||||||||
i |
добавление текста перед адресуемыми строками. Формат команды: [адрес]i\ текст \ . . . текст |
||||||||
c |
замена блока адресуемых строк заданным текстом. Формат команды: [адрес]c\ текст \ . . . текст |
||||||||
d |
удаление адресуемых строк. |
||||||||
s |
замена в адресуемых строках заданного шаблона заданным текстом. Формат команды: [адрес]s\шаблон\текст[флаги] Шаблон задается регулярным выражением. В тексте может использоваться метасимвол "&" для обозначения заменяемого текста. Возможные флаги команды s:
|
||||||||
w файл |
вывод адресуемых строк в файл. |
||||||||
r файл |
чтение текста из файла и вставка его после каждой адресуемой строки. |
||||||||
q |
завершение работы при достижении адресуемой строки. |
Join - соединение файлов.
join [опции] файл1 файл2
Команда join для каждой пары входных строк с одинаковыми значениями в заданных полях (по умолчанию - в первых полях) выводит соединенную строку в стандартный вывод. Если вместо одного из файлов стоит -, то используется стандартный ввод.
Фактически join выполняет операцию реляционного соединения файлов, структурированных как таблицы.
Строка результата начинается с общего поля, затем следуют остальные поля файла1, затем - остальные поля файла1
Файл1 файл2 должны быть отсортированы в возрастающем лексикографическом порядке по полям соединения.
Таблица 3. Опции.
-e строка |
заменять пустые поля вывода заданной строкой. |
-i |
игнорировать регистр при сравнении полей |
-j номер_поля |
задание номера поля для сравнения, общего для обоих файлов (эквивалентно:-1номер_поля-2номер_поля). |
-j1 номер_поля |
задание номера поля для сравнения в 1-ом файле (эквивалентно:-1номер_поля) |
-j2 номер_поля |
задание номера поля для сравнения во 2-ом файле (эквивалентно:-2номер_поля) |
-t символ |
задание символа- разделителя полей (по умолчанию - пробел) |