Здравствуйте! В процессе обработки большого текстового файла столкнулся с тем, что sed работает с ним не так, как предполагается. Начал копать и в итоге сузил круг проблемы всего до двух строк. Файл, состоящий из двух этих строк, обрабатывается sed'ом не так, как предполагается. Я даже содержимое этих строк изменил, написал в одной просто "ОДИН", в другой - "=ДВА". И все равно sed работает не так! А другой файл с таким_же_текстом "ОДИН" и "=ДВА" обрабатывается sed'ом нормально. Может, я туплю, но, пожалуйста, объясните мне, в чем разница между этими файлами? Команда diff говорит, что разница есть. Но я ее не понимаю )) Возможно, дело в хитростях юникода?
$ cat test3 ОДИН =ДВА $cat test4 ОДИН =ДВА $ sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D' test3 ОДИН ДВА $ sed -e :a -e '$!N;s/\n=/ /;ta' -e 'P;D' test4 ДВА $ diff --unified test3 test4 --- test3 2009-03-13 23:15:52.000000000 +0300 +++ test4 2009-03-13 23:15:49.000000000 +0300 @@ -1,2 +1,2 @@ -ОДИН +ОДИН =ДВА Сами файлы прикладываю. -- С уважением, Алексей Мишустин
ОДИН =ДВА
ОДИН =ДВА

