Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
  shell
  sed
  awk
FreeBSD
man
EXIM


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, для строк, которые не были выбраны по адресам.

    Для следующих (основных) функций (команд) максимальное число допустимых адресов указано в скобках.
(1)a\
text

 Добавляет 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

(2)b label

    Осуществляет  переход  к  команде  ("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

(2)c\
text 

Удаляет выбранные строки и заменяет их на "text'.

Пример:
who | sed '/sae/ c\
cтрока замены
'

Результат:
root tty1 Mar 13 17:23
mas tty2 Mar 13 18:50
строка замены
строка замены

(2)d

 Удаляет найденные строки

Пример:
who | sed '2,4d'

Результат:
root tty1 Mar 13 17:23

(1)i\
	 text 

    Вставляет "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". Длины строк должны быть одинаковыми.

Пример:
who | sed 'y/sae/SAE/'

Результат:
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" применяются к невыбранным строкам.
Пример:
who | sed '2,4!d'

Результат:
mas tty2 Mar 13 18:50
sae tty6 Mar 13 17:24
sae tty5 Mar 13 17:24

(1)=  Выдает номера строк.
Пример:
who | sed =

Результат:
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.



Хостинг HOST-FOOD

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-11, Fomalhaut
cvs, svn, portsnap

Обновление сорцов системы через CVS и SVN, портов - CVS и portsnap. Обновление через Proxy-сервер.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 72 человек
За сегодня было
12869 показов,
1678 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

веселые картинки развлекательные гифки интресные факты смешные видео смешные истории из соцсетей

Время генерации страницы 1.1676 секунд
Из них PHP: 98%; SQL: 2%; Число SQL-запросов: 46 шт.
У Вас отключено GZIP-сжатие в браузере. Размер страницы 54650