|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 31 Jan 2005 19:04:30 To : Serg Oskin Subject : Re: sed -------------------------------------------------------------------------------- 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>строку... Вообще-то это не совсем верно. Unless special commands (like `D') are used, the pattern space is deleted between two cycles. Hапример, есть команда N, которая добавляет следующую строку к pattern space без удаления предыдущей оттуда. Поэтому скажем, слепить склеить строку, оканчивающуюся на : со следующей, заменив \n на = можно. echo 'foo: bar baz zz: xx yy' | sed '/:$/ { N s/:\n/=/ }' foo=bar baz zz=xx yy То есть задачу "склеить HЕКОТОРЫЕ строки, заменив newline на что-то осмысленное" sed решать умеет. -- --- ifmail v.2.15dev5.3 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1517849686788.html, оценка из 5, голосов 10
|