| 
		
			
			 
		 | 
		
			
			 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 и внешние скрипты.
 
			
			 
		 | 
	
	
		
		
	
		
			
			
				
					
						Статистика сайта
					 | 
				 
				
					
						Сейчас на сайте находится: 13 чел.
					 | 
				 
				
					
						За последние 30 мин было: 93 человек
					 | 
				 
				
					
						За сегодня было 4489 показов, 1535 уникальных IP
					 | 
				 
			 
		 | 
	 
 
	
		 | 
		 
		 | 
		
			   Этот информационный блок появился по той простой причине,
			что многие считают нормальным, брать чужую информацию не уведомляя автора
			(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
			Я не против распространения информации — только за. Только условие простое — извольте
			подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
			незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
			 
			  Если соизволите поставить автора в известность — то вообще почёт вам и уважение. 
			© lissyara 2006-10-24 08:47 MSK
			 
		 | 
		
			 
		 | 
		
		
		
		
		 |