Здрасте ^) Долго думал писать или нет -) Я, конечно, понимаю, что ошибся форумом, но все же, раз уж тут у вас такая тема: "Если что-то не работает, но вы не можете понять что.", - а вдруг.. :D Ведь, в конце концов, аниме и линукс - они так похожи -) Может кто-нибудь знает, почему . (точка) в регулярном выражении для sed не совпадает с символами '0xe0' и '0xff' (а может и еще с какими-то)? Вот как я проверял. Для входного файла 'A' 'A' 0xe0 'B' 'B' 0xff 'C' 'C' проверяем совпадение с рег. выражениями '.*BB' и '.*CC'. Если . (точка) совпадет с 0xe0 и/или 0xff, то выбрано будет больше, чем "BB" или "CC". Создаем входной файл (может есть способ проще?): # echo | sed -e's/^/AA\xe0BB\xffCC/' >|1.tmp
# cat 1.tmp
AA?BB?CC Проверяем совпадение . (точки) с 0xe0 (совпавший участок будет выделен символами '_' (подчеркивание)): # sed -e's/.*BB/_&_/' 1.tmp >|2.tmp
# cat 2.tmp
AA?_BB_?CC Т.е '.*' не совпало ни с чем. И то же самое для совпадения . (точки) с 0xff: # sed -e's/.*CC/_&_/' 1.tmp >|2.tmp
# cat 2.tmp
AA?BB?_CC_ И опять '.*' ни с чем не совпало. PS. Проверял под линуксом. # sed --version
GNU sed version 4.2.1