|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 31 Jan 2005 20:44:51 To : Victor Wagner Subject : Re: sed -------------------------------------------------------------------------------- Victor Wagner -> Serg Oskin @ Mon, 31 Jan 2005 15:04:30 +0000 (UTC): VW> Serg Oskin <Serg.Oskin@f20.n5020.z2.fidonet.org> wrote: DK>>>From: Denis Kostousov <sandello@permonline.ru> Добрый DK>>>день, уважаемые DK>>>Стоит FC 3, sed 4.1.2 Пытаюсь выполнить небольшой DK>>>эксперимент: $ echo -en "\n"|sed -e 's/\n/qq/g' DK>>>$ Суть эксперимента - заставить sed объединять некоторые DK>>>строки. И нифига. В vim'е такое прокатывало. Такое DK>>>впечатление, что sed не находит совпадений для шаблона. DK>>>Может я что-то не так делаю? SO>>sed все операции выполняет построчно, т.е. читает одну SO>>строку, обрабатывает, записывает, читает следующую SO>>строку... VW> Вообще-то это не совсем верно. VW> Unless special commands (like `D') are used, the pattern space is VW> deleted between two cycles. VW> Hапример, есть команда N, которая добавляет следующую строку к pattern VW> space без удаления предыдущей оттуда. VW> Поэтому скажем, слепить склеить строку, оканчивающуюся на : со VW> следующей, заменив \n на = можно. VW> echo 'foo: VW> bar baz VW> zz: VW> xx yy' | sed '/:$/ { N VW> s/:\n/=/ VW> }' VW> foo=bar baz VW> zz=xx yy VW> То есть задачу "склеить HЕКОТОРЫЕ строки, заменив newline на что-то VW> осмысленное" sed решать умеет. Hу, есть и пример разворачивания файла наоборот по строкам на sed. Тоже не rocket science. -- Artem Chuprina RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/11477cc6918d3.html, оценка из 5, голосов 10
|