<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Все о FreeBSD &#187; SED</title>
	<atom:link href="http://msnp.ru/tag/sed/feed" rel="self" type="application/rss+xml" />
	<link>http://msnp.ru</link>
	<description>Проект о FreeBSD и OpenSource</description>
	<lastBuildDate>Thu, 12 Jan 2012 10:21:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Редактор SED</title>
		<link>http://msnp.ru/160</link>
		<comments>http://msnp.ru/160#comments</comments>
		<pubDate>Mon, 29 Dec 2008 17:38:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[SED]]></category>
		<category><![CDATA[подсказки]]></category>
		<category><![CDATA[редактор]]></category>

		<guid isPermaLink="false">http://msnp.ru/?p=160</guid>
		<description><![CDATA[Однострочные скрипты SED Пространство между строками: Двойное пространство между строками: sed G Двойное пространство между строками исключая пустые строки (на выходе содержатся не больше одной пустой строки между двумя строками с текстом): sed ‘/^$/d;G’ Тройное пространство между строками: sed ‘G;G’ Удалить каждую вторую строку: sed ‘n;d’ Вставить пустую строку перед каждой строкой соответствующей регулярному выражению [...]]]></description>
			<content:encoded><![CDATA[<p>Однострочные скрипты SED<span id="more-160"></span></p>
<p>Пространство между строками:</p>
<p>Двойное пространство между строками:<br />
sed G<br />
Двойное пространство между строками исключая пустые строки (на выходе содержатся не больше одной пустой строки между двумя строками с текстом):<br />
sed ‘/^$/d;G’<br />
Тройное пространство между строками:<br />
sed ‘G;G’<br />
Удалить каждую вторую строку:<br />
sed ‘n;d’<br />
Вставить пустую строку перед каждой строкой соответствующей регулярному выражению “regex”:<br />
sed ‘/regex/{x;p;x;}’<br />
Вставить пустую строку после каждой строки соответствующей регулярному выражению “regex”:<br />
sed ‘/regex/G’<br />
Вставить пустую строку перед и после каждой строки соответствующей регулярному выражению “regex”:<br />
sed ‘/regex/{x;p;x;G;}’<br />
Нумерация:</p>
<p>Нумерация каждой стоки в файле filename. Используя отступ (tab) (смотрите примечание по ‘\t’ в конце документа) вместо пустой строки:<br />
sed = filename | sed ‘N;s/\n/\t/’<br />
Нумерация каждой строки в файле filename (номер слева, выравненый по правому краю):<br />
sed = filename | sed ‘N; s/^/ /; s/ *\(.\{6,\}\)\n/\1 /’<br />
Нумерация каждой строки в файле filename, с выводом номера только для не пустых строк:<br />
sed ‘/./=’ filename | sed ‘/./N; s/\n/ /’<br />
Подсчет строк (эмуляция “wc -l”):<br />
sed -n ‘$=’<br />
Преобразование и замена текста:</p>
<p>В UNIX окружении: преобразование окончания строк из формата DOS (CR/LF) в формат Unix (LF):<br />
sed ’s/.$//’ (подразумевается что все строки заканчиваются с CR/LF)<br />
sed ’s/^M$//’ (в bash/tcsh, нажмите Ctrl-V затем Ctrl-M)<br />
sed ’s/\x0D$//’ (работает в ssed, gsed 3.02.80 или выше)<br />
В UNIX окружении: преобразование разрыва строк Unix (LF) в формат DOS:<br />
sed “s/$/`echo -e \\\r`/” (команда в ksh)<br />
sed ’s/$’”/`echo \\\r`/” (команда под bash)<br />
sed “s/$/`echo \\\r`/” (команда под zsh)<br />
sed ’s/$/\r/’ (команда под gsed 3.02.80 или выше)<br />
В DOS окружении: преобразование разрыва строк Unix (LF) в формат DOS:<br />
Версия 1: sed “s/$//”<br />
Версия 2: sed -n p<br />
В DOS окружении: преобразование разрыва строк DOS (CR/LF) в формат Unix. Работоет только с sed версии 4.0.7 или выше. Версию в Unix окружении можно узнать, вызвав SED с параметром “–version”. В версии ниже, в DOS окружении такой фокус не пройдет. Использвйте взамен комманду “tr”:<br />
sed “s/\r//” infile &gt;outfile (sed v4.0.7 или выше)<br />
tr -d \r &lt;infile &gt;outfile (GNU tr версии 1.22 или выше)<br />
Удалить все пробелы и символы табуляции в начале каждой строки файла (смотрите примечание по табуляции в конце документа):<br />
sed ’s/^[ \t]*//’<br />
Удалить все пробелы и символы табуляции в конце каждой строки файла (смотрите примечание по табуляции в конце документа):<br />
sed ’s/[ \t]*$//’<br />
Удалить все пробелы и символы табуляции в начале и конце каждой строки файла (смотрите примечание по табуляции в конце документа):<br />
sed ’s/^[ \t]*//;s/[ \t]*$//’<br />
Вставить 5 пробелов в начале каждой строки (создать смещение страницы):<br />
sed ’s/^/ /’<br />
Расположить весь текст по правому краю столбца шириной в 79 символов:<br />
sed -e :a -e ’s/^.\{1,78\}$/ &amp;/;ta’ (устанавливает как 78 плюс 1 пробельный символ)<br />
Центрировать весь текст посередине столбца шириной 79 символов. В версии 1, пробелы добовляются в начало и конец строки. В версии 2, пробелы добовляются только в начало строки:<br />
Версия 1: sed -e :a -e ’s/^.\{1,77\}$/ &amp; /;ta’<br />
Версия 2: sed -e :a -e ’s/^.\{1,77\}$/ &amp;/;ta’ -e ’s/\( *\)\1/\1/’<br />
Поиск и замеа “foo” на “bar” в каждой строке:<br />
sed ’s/foo/bar/’ (замена только первого совпадения в строке)<br />
sed ’s/foo/bar/4? (замена первых 4рех совпадений в строке)<br />
sed ’s/foo/bar/g’ (замена ВСЕХ совпадений в строке)<br />
sed ’s/\(.*\)foo\(.*foo\)/\1bar\2/’ (замена предпоследнего совпадения)<br />
sed ’s/\(.*\)foo/\1bar/’ (замена только последнего совпадения)<br />
Замена “foo” на “bar” ТОЛЬКО для строк содержащих “baz”:<br />
sed ‘/baz/s/foo/bar/g’<br />
Замена “foo” на “bar” ИСКЛЮЧАЯ строки содержащие “baz”:<br />
sed ‘/baz/!s/foo/bar/g’<br />
Замена “scarlet” или “ruby”, или “puce” на “red”:<br />
sed ’s/scarlet/red/g;s/ruby/red/g;s/puce/red/g’ (большинство sed-ов)<br />
gsed ’s/scarlet\|ruby\|puce/red/g’ (только GNU sed)<br />
Перевернуть последовательность строк (эмуляция “tac”) (ошибка/особеннось в HHsed v1.5 причина удалению пустой строки):<br />
Версия 1: sed ‘1!G;h;$!d’<br />
Версия 2: sed -n ‘1!G;h;$p’<br />
Перевернуть каждую строку в файле задом наперед (эмуляция “rev”):<br />
sed ‘/\n/!G;s/\(.\)\(.*\n\)/&amp;\2\1/;//D;s/.//’<br />
Соеденить каждую пару строк бок о бок (подобно “paste”):<br />
sed ‘$!N;s/\n/ /’<br />
Если линия заканчивается обратной косой чертой “\”, то присоеденить следующую линию:<br />
sed -e :a -e ‘/\\$/N; s/\\\n//; ta’<br />
Если линия начинается с знака “=”, то присоеденить ее к предыдущей линии и заменить “=” пробелом:<br />
sed -e :a -e ‘$!N;s/\n=/ /;ta’ -e ‘P;D’<br />
Добавить запятые к строке из чисел, изменяя “1234567? на “1,234,567?:<br />
gsed ‘:a;s/\B[0-9]\{3\}\&gt;/,&amp;/;ta’ (GNU sed)<br />
sed -e :a -e ’s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta’ (другие sed-ы)<br />
Добавить запятые к числу с десятичной частью и знаком минуса (GNU sed):<br />
gsed -r ‘:a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;ta’<br />
Добавить пустую строку через каждые 5 строк (после строк 5, 10, 15, 20, и т.д.):<br />
gsed ‘0~5G’ (только GNU sed)<br />
sed ‘n;n;n;n;G;’ (другие sed-ы)<br />
Выборочная печать некоторых строк:</p>
<p>Печатать первые 10 линий файла (эмуляция “head”):<br />
sed 10q<br />
Печатать первую строку файла (эмуляция “head -1?):<br />
sed q<br />
Печатать последние 10 строк файла (эмуляция “tail”):<br />
sed -e :a -e ‘$q;N;11,$D;ba’<br />
Печатать последние 2 строки файла (эмуляция “tail -2?):<br />
sed ‘$!N;$!D’<br />
Печатать последнюю строку файла (эмуляция “tail -1?):<br />
Версия 1: sed ‘$!d’<br />
Версия 2: sed -n ‘$p’<br />
Печатать предпоследнюю строку в файле:<br />
sed -e ‘$!{h;d;}’ -e x (для однострочного файла печатать пустую строку)<br />
sed -e ‘1{$q;}’ -e ‘$!{h;d;}’ -e x (для однострочного файла печатать эту строку)<br />
sed -e ‘1{$d;}’ -e ‘$!{h;d;}’ -e x (для однострочного файла ничего не печатать)<br />
Печатать только те строки, которые совпадают с регулярным выражением (эмуляция “grep”):<br />
Версия 1: sed -n ‘/regexp/p’<br />
Версия 2: sed ‘/regexp/!d’<br />
Печатать только те строки, которые НЕ совпадают с регулярным выражением (эмуляция “grep -v”):<br />
sed -n ‘/regexp/!p’ &#8212; Версия 1, corresponds to above<br />
sed ‘/regexp/d’ &#8212; Версия 2, simpler syntax<br />
Печатать строку непосредственно перед регулярным выражением, но не печатать строку содержащую регулярное выражение:<br />
sed -n ‘/regexp/{g;1!p;};h’<br />
Печатать строку непосредственно после регулярного выражения, но не печатать строку содержащую регулярное выражение:<br />
sed -n ‘/regexp/{n;p;}’<br />
Печатать по одной строке перед и после регулярного выражения, с указанием номера строки совпадающей с регулярным выражением (симуляция “grep -A1 -B1?):<br />
sed -n -e ‘/regexp/{=;x;1!p;g;$!N;p;D;}’ -e h<br />
Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в любой последовательности):<br />
sed ‘/AAA/!d; /BBB/!d; /CCC/!d’<br />
Печать строк, совпадающих с регулярными выражениями AAA, BBB и CCC одновременно (в конкретной последовательности):<br />
sed ‘/AAA.*BBB.*CCC/!d’<br />
Печать строк, совпадающих с любым регулярным выражением AAA или BBB, или CCC (эмуляция “egrep”):<br />
sed -e ‘/AAA/b’ -e ‘/BBB/b’ -e ‘/CCC/b’ -e d (большинство sed’ов)<br />
gsed ‘/AAA\|BBB\|CCC/!d’ (только GNU sed)<br />
Печатать абзац если он содержит AAA (пустая строка разделяет абзацы) (в HHsed v1.5 необходимо вставить ‘G;’ после ‘x;’):<br />
sed -e ‘/./{H;$!d;}’ -e ‘x;/AAA/!d;’<br />
Печатать абзац если он содержит AAA, BBB и CCC (в любой последовательности) (в HHsed v1.5 необходимо вставить ‘G;’ после ‘x;’):<br />
sed -e ‘/./{H;$!d;}’ -e ‘x;/AAA/!d;/BBB/!d;/CCC/!d’<br />
Печатать абзац если он содержит AAA или BBB, или CCC (в HHsed v1.5 необходимо вставить ‘G;’ после ‘x;’):<br />
sed -e ‘/./{H;$!d;}’ -e ‘x;/AAA/b’ -e ‘/BBB/b’ -e ‘/CCC/b’ -e d<br />
gsed ‘/./{H;$!d;};x;/AAA\|BBB\|CCC/b;d’ (только GNU sed)<br />
Печатать строки длиной равной или большей 65 символов:<br />
sed -n ‘/^.\{65\}/p’<br />
Печатать строки длиной меньше или равной 65 символов:<br />
sed -n ‘/^.\{65\}/!p’ &#8212; Версия 1, отвечает условию<br />
sed ‘/^.\{65\}/d’ &#8212; Версия 2, более простой синтаксис<br />
Печатать часть файла начиная от совпадения с регулярным выражением и до конца файла:<br />
sed -n ‘/regexp/,$p’<br />
Печатать часть файла основываясь на номерах строк (строки 8-12, включительно):<br />
Версия 1: sed -n ‘8,12p’<br />
Версия 2: sed ‘8,12!d’<br />
Печатать строку под номером 52:<br />
sed -n ‘52p’ &#8212; Версия 1<br />
sed ‘52!d’ &#8212; Версия 2<br />
sed ‘52q;d’ &#8212; Версия 3, эффективен на больших файлах<br />
Начиная с 3ей строки печатать каждую седьмую строку в файле:<br />
gsed -n ‘3~7p’ (только GNU sed)<br />
sed -n ‘3,${p;n;n;n;n;n;n;}’ (другие sed-ы)<br />
Печатать часть файла между двумя регулярными выражениями (включительно):<br />
sed -n ‘/Iowa/,/Montana/p’ (регистро зависимый)<br />
Избирательное удаление определенных строк:</p>
<p>Печатать все линии ИСКЛЮЧАЯ часть между двумя регулярными выражениями:<br />
sed ‘/Iowa/,/Montana/d’<br />
Удалить дубликаты последовательных строк в файле (эмуляция “uniq”). Первая строка в наборе дубликатах строк удерживается от удаления:<br />
sed ‘$!N; /^\(.*\)\n\1$/!P; D’<br />
Удалить дубликаты непоследовательных строк в файле. Остерегайтесь переполнения буфера или используйте GNU sed:<br />
sed -n ‘G; s/\n/&amp;&amp;/; /^\([ -~]*\n\).*\n\1/d; s/\n//; h; P’<br />
Печатать только дубликаты строк (эмуляция “uniq -d”):<br />
sed ‘$!N; s/^\(.*\)\n\1$/\1/; t; D’<br />
Удалить первые 10 строк в файле:<br />
sed ‘1,10d’<br />
Удалить последнюю строку в файле:<br />
sed ‘$d’<br />
Удалить 2 последние строки файла:<br />
sed ‘N;$!P;$!D;$d’<br />
Удалить последние 10 строк файла:<br />
Версия 1: sed -e :a -e ‘$d;N;2,10ba’ -e ‘P;D’<br />
Версия 2: sed -n -e :a -e ‘1,10!{P;N;D;};N;ba’<br />
Удалить каждую восьмую строку в файле:<br />
gsed ‘0~8d’ (только GNU sed)<br />
sed ‘n;n;n;n;n;n;n;d;’ (другие sed-ы)<br />
Удалить строки совпадающие с регулярным выражением:<br />
sed ‘/pattern/d’<br />
Удалить ВСЕ пустрые строки из файла (эмуляция “grep ‘.’ “):<br />
Версия 1: sed ‘/^$/d’<br />
Версия 2: sed ‘/./!d’<br />
Удалить все последовательности пустых строк из файла исключая первую. Также удалить все пустые строки в начале и в конце файла (эмуляция “cat -s”):<br />
sed ‘/./,/^$/!d’ (Версия 1, допускается 0 пустых строк в начале и 1 в конце файла)<br />
sed ‘/^$/N;/\n$/D’ (Версия 2, допускается 1 пустая строка в начале и 0 в конце файла)<br />
Оставить последовательность пустых строк не более двух одновременно:<br />
sed ‘/^$/N;/\n$/N;//D’<br />
Удалить все пустые строки в начале файла:<br />
sed ‘/./,$!d’<br />
Удалить все пустые строки в конце файла:<br />
sed -e :a -e ‘/^\n*$/{$d;N;ba’ -e ‘}’ (для всех sed-ов)<br />
sed -e :a -e ‘/^\n*$/N;/\n$/ba’ (для всех, кроме gsed 3.02.*)<br />
Удалить последнюю непустую строку в каждом абзаце:<br />
sed -n ‘/^$/{p;h;};/./{x;/./p;}’<br />
Специальные приложения:</p>
<p>Получить заголовок Usenet/e-mail сообщения:<br />
sed ‘/^$/q’ (удаляет все после первой пустой строки)<br />
Получить тело Usenet/e-mail сообщений:<br />
sed ‘1,/^$/d’ (удаляет все до первой пустой строки)<br />
Получить заголовок Subject (тема Usenet/e-mail сообщения), без удаления части “Subject: “:<br />
sed ‘/^Subject: */!d; s///;q’<br />
Получить заголовок обратный адрес:<br />
sed ‘/^Reply-To:/q; /^From:/h; /./d;g;q’<br />
Анализировать правильный исходящий адрес. # Pulls out the e-mail address by itself from the 1-line return address header (see preceding script):<br />
sed ’s/ *(.*)//; s/&gt;.*//; s/.*[:&lt;] *//’<br />
Добавить скобку и пробел в начало каждой строки (цитирование сообщения):<br />
sed ’s/^/&gt; /’<br />
Удалить скобку и пробел в начале каждой строки (unquote a message):<br />
sed ’s/^&gt; //’<br />
Удалить большинство HTML тегов (включая теги состоящие из несколько строк):<br />
sed -e :a -e ’s/&lt;[^&gt;]*&gt;//g;/&lt;/N;//ba’<br />
Извлечение закодированных (uuencoded) двоичных данных из нескольких частей, удаление внешней заголовочной информации. Итак это только часть закодированного остатка. Файлы пропущенные через sed должны быть пропущены в правильной последовательности. Версия 1 может быть введена из командной строки, версия 2 может быть встроена в исполняемый скрипт оболочки Unix. (Модифицированна из скрипта Rahul Dhesi):<br />
Версия 1: sed ‘/^end/,/^begin/d’ file1 file2 … fileX | uudecode<br />
Версия 2: sed ‘/^end/,/^begin/d’ “$@” | uudecode<br />
Отсортировать абзацы файла в алфавитном порядке. Абзацы разделены пустой строкой. GNU sed использует \v для вертикального выравнивания, или это может быть любой уникальный символ:<br />
sed ‘/./{H;d;};x;s/\n/={NL}=/g’ file | sort | sed ‘1s/={NL}=//;s/={NL}=/\n/g’<br />
gsed ‘/./{H;d};x;y/\n/\v/’ file | sort | sed ‘1s/\v//;y/\v/\n/’<br />
Удалить конкретный символ (к примеру: символ возврата) из man страницы. Для использования команды ‘echo’ может потребоваться указать параметр -e (если вы используете Unix System V или оболочку bash):<br />
sed “s/.`echo \\\b`//g” (двойные кавычки необходимы в Unix окружении)<br />
sed ’s/.^H//g’ (в bash/tcsh, нажмите Ctrl-V и затем Ctrl-H)<br />
sed ’s/.\x08//g’ (hex выражение для sed 1.5, GNU sed, ssed)<br />
В DOS окружении: создаем коммандный файл, который запаковывает каждый txt-файл в каталоге (в две команды):<br />
echo @echo off &gt;zipup.bat<br />
dir /b *.txt | sed “s/^\(.*\)\.TXT/pkzip -mo \1 \1.TXT/” &gt;&gt;zipup.bat<br />
Типичное использование:</p>
<p>sed берет одну или более команд редактирования и в результате примеяет их все к каждой входящей строке. После этого все команды будут применены к первой входящей строке, эта строка выводится, а следующая входящая строка берется для обработки и цикл повтаряется.<br />
Предшествующий пример предполагает что данные поступают с устройства стандартного ввода (например, консоль &#8212; стандартный канал ввода). Один или больше имен файлом могут быть присоеденены к командной строке если вход идет не из stdin. Вывод отсылается на стандартный вывод (stdout &#8212; обычно экран).</p>
<p>Так:</p>
<p>cat filename | sed ‘10q’ (используется ввод из конвеера)<br />
sed ‘10q’ filename (тот же эффект, исключая использование “cat”)<br />
sed ‘10q’ filename &gt; newfile (перенаправление вывода в файл)<br />
Для дополнительных синтаксических инструкций, включая метод применения команд редактирования из файла, взамен командной строки, посмотрите книги Dale Dougherty и Arnold Robbins “sed &amp; awk, 2nd Edition,”, “UNIX Text Processing,” by Dale Dougherty и Tim O’Reilly (Hayden Books, 1987) или учебники Mike Arst distributed in U-SEDIT2.ZIP (many sites).</p>
<p>Для использование всех возможностей sed-а вы должны понимать “регулярные выражения”. Для этого смотрите “Mastering Regular Expressions” by Jeffrey Friedl (O’Reilly, 1997).</p>
<p>Могут пригодиться страницы руководства (”man”) в системе Unix (Используйте “man sed”, “man regexp”, или раздел по регулярным выраженям в “man sed”), но страницы руководства, как правило, трудны. Они не написаны для обучения пользователей использования sed-а или регулярных выражений с нуля, а написаны как справочник для тех кто уже умеет работать с этими инструментами.</p>
<p>Цитирование правил (Quoting syntax):</p>
<p>Предшествующий пример использует одинарные кавычки (’…’) вместо двойных кавычек (”…”) для окружения редактируемой команды, с тех пор как sed в основном исользуется на платформах Unix. Одинарные кавычки предотращают оболочку Unix от интерпретации знака доллара ($) и обратных кавычек (`…`), которые расширяют оболочку если они заключены в двойные кавычки. Пользователи “csh” shell и происходящие от нее оболочки, также нуждаются в взятие в кавычки знака восклицания (!). С обратной косой чертой (\!) правильно запускает пример указанные выше, даже внутри одинарных кавычек.</p>
<p>Версии sed написанные для DOS обязательно требуют заключение редактируемых команд в двойные кавычки (”…”) взамен одинарных.</p>
<p>Исользование ‘\t’ в скриптах SED:</p>
<p>Для ясности документации, мы можем использовать выражение ‘\t’ для обозначения символа табуляции (0?09) в скриптах.</p>
<p>Однако большинство версий sed-а не понимают сокращение ‘\t’, чтобы ввести этот символ из командной строки, введите его клавишей “TAB“.</p>
<p>‘\t’ поддерживается как метасимвол регулярнго выражения в awk, perl, HHsed, sedmod, и GNU sed v3.02.80.</p>
<p>Версии sed:</p>
<p>Разные версии sed-а, различаются незначителными переменами. Большинство версий не поддерживает меток (:name) или ветвление инструкций (b,t) внутри команд редактирования. Хотя поддерживают их в конце команд. Желательно использовать синтаксис исключая метки и ветвления инструкций, несмотря на популярность GNU версии sed-а, позволяющий более краткий и красивый синтаксис.</p>
<p>Когда читатель смотрит GNU версию sed-а, поддерживающего боле лаконичный синтаксис и видит такую длинную команду, как эту:</p>
<p>sed -e ‘/AAA/b’ -e ‘/BBB/b’ -e ‘/CCC/b’ -e d<br />
это подбивает к изученю GNU версию sed-а, для укорачивания команды:</p>
<p>sed ‘/AAA/b;/BBB/b;/CCC/b;d’<br />
sed ‘/AAA\|BBB\|CCC/b;d’<br />
В дополнение запомните: многие версии sed-а принимают команду, типа “/one/ s/RE1/RE2/”, но не принимают типа “/one/! s/RE1/RE2/” &#8212; содержащую пробел перед “s”.</p>
<p>Оптимизация по скорости:</p>
<p>Для необходимого ускорения выполнения программы (к примеру на больший файлах, медленном процессоре или медленном носителе), замена будет более быстрой если искомое условие будет продублированно перед инструкцией “s/…/…/”. Пример:</p>
<p>sed ’s/foo/bar/g’ filename (стандартная команда замены)<br />
sed ‘/foo/ s/foo/bar/g’ filename (выполняется быстрее)<br />
sed ‘/foo/ s//bar/g’ filename (укороченный синтаксис предыдущей команды)<br />
В однострочном выводе на печать или удалении строк (при неполной обработке файла), используйте команду выхода “quit” (q) в скрипте &#8212; это резко сократит время обработки больших файлов. Пример:</p>
<p>sed -n ‘45,50p’ filename (вывести на печатать линии с 45 по 50)<br />
sed -n ‘51q;45,50p’ filename (тоже самое, но работает быстрее)<br />
Если Вы хотите добавить свой скрипт или нашли ошибку в этом документе, пожалуйста отправьте e-mail составителю. Также укажите составителю используемую Вами версию sed-а, операционную систему составителю и обозначьте проблему. Чтобы охарактеризовать скрипт как одно-строковый, команда должна содержать не больше 65 символов.</p>
<p>Разнообразные скрипты в этом документе были написаны (или содействовали):</p>
<p>Al Aab &#8212; founder of “seders” list<br />
Edgar Allen &#8212; various<br />
Yiorgos Adamopoulos &#8212; various<br />
Dale Dougherty &#8212; author of “sed &amp; awk”<br />
Carlos Duarte &#8212; author of “do it with sed”<br />
Eric Pement &#8212; author of this document<br />
Ken Pizzini &#8212; author of GNU sed v3.02<br />
S.G. Ravenhall &#8212; great de-html script<br />
Greg Ubben &#8212; many contributions &amp; much help</p>
]]></content:encoded>
			<wfw:commentRss>http://msnp.ru/160/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

