|
|
www.lissyara.su
—> документация
—> Программирование
—> sed
ПОТОКОВЫЙ РЕДАКТОР sed
Команда имеет формат:
sed [ -n ] [ -e script ] [ -f sfile ] [ files ]
| Команда копирует файлы (по умолчанию со стандартного входа) на стандартный выход, редактирует их в соответствии со своими(!) командами, размещенными в "script" (в командном файле или строке редактора [а не shell!]). По флагу "-f" берет берет файл команд из файла sfile; Если есть только опция -e script, то флаг -e можно опустить. Флаг -n подавляет вывод (происходящий по умолчанию). "script" состоит из команд редактирования, по одной в строке, имеющих формат:
[ addr [ , addr ] ] cmd [ args ]
| sed циклически преобразует входные строки в выходные.
Адреса [ addr [ , addr ] ] - это либо номера строк, либо последняя строка (символ "$"), либо регулярные выражения в стиле редактора ed:
— "\\" используется в многострочных командах для экранирования продолжения строки.
— "." совпадает с любым символом.
— Если адреса не указаны - просматриваются все входные строки.
— Если один адрес, то выбираются совпадающие строки.
— Если заданы два адреса, выбираются строки в заданном интервале.
— !cmd выполняется команда cmd, для строк, которые не были выбраны по адресам.
Для следующих (основных) функций (команд) максимальное число допустимых адресов указано в скобках.
Добавляет text после указанной строки
Команда:
who
Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
| Пример:
who | sed '2a\
новая строка
'
| Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
новая строка
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
|
Осуществляет переход к команде ("cmd") "label:cmd" Если метка ("label") отсутствует, то переход на конец командного файла.
Пример:
who | sed '2a\
новая строка
b lb
2d
: lb 3d
'
| Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
новая строка
sae tty5 Mar 13 17:24
|
Удаляет выбранные строки и заменяет их на "text'.
Пример:
who | sed '/sae/ c\
cтрока замены
'
| Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
строка замены
строка замены
|
Удаляет найденные строки
Пример:
Результат:
Вставляет "text" на место выбранной строки. (сравните с "a\")
Пример:
who | sed '2i\
новая строка
'
| Результат:
root tty1 Mar 13 17:23
новая строка
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
| (2)p Выводит найденные строки (используется с флагом "-n").
(1)q Выходит из sed.
(2)r rfile Читает файл "rfile" и выдает на выход.
(2)s/reg_expr/rpl/flags Заменяет регулярное выражение "reg_expr" на "rpl" с учетом флагов "flags":
g - глобально (по всей строке)
p - выводить замены
w wfile - сохранять заменяемое в "wfile".
Пример:
who | sed 's/t/T/'
echo
who | sed 's/t/T/g'
| Результат:
rooT tty1 Mar 13 17:23
mas Tty2 Mar 13 18:50
sae Tty6 Mar 13 17:24
sae Tty5 Mar 13 17:24
rooT TTy1 Mar 13 17:23
mas TTy2 Mar 13 18:50
sae TTy6 Mar 13 17:24
sae TTy5 Mar 13 17:24
| (2)y/str1/str2/ Заменяет все вхождения символов "str1" соответсвующими символами "str2". Длины строк должны быть одинаковыми.
Пример:
Результат:
root tty1 MAr 13 17:23
mAS tty2 MAr 13 18:50
SAE tty6 MAr 13 17:24
SAE tty5 MAr 13 17:24
| (2)! cmd Команда(ы) "cmd" применяются к невыбранным строкам.
Пример:
Результат:
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24
| (1)= Выдает номера строк.
Пример:
Результат:
1
root tty1 Mar 13 17:23
2
mas tty2 Mar 13 18:50
3
sae tty6 Mar 13 17:24
4
sae tty5 Mar 13 17:24
| (2){ } Скобки группируют команды.
(с) А.Соловьев
Ссылка на обсуждение: http://forum.lissyara.su/viewforum.php?f=32.
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
|
Статистика сайта
|
Сейчас на сайте находится: 24 чел.
|
За последние 30 мин было: 52 человек
|
За сегодня было 8506 показов, 989 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Самый большой каталог мягкой мебели по самым лучшим ценам
|