|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Dmytro Rud 2:5020/400 27 Apr 2005 10:23:14 To : Eugene Grosbein Subject : Re: Замена по тексту -------------------------------------------------------------------------------- Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> writes: > RNA> Как мне заменить строку (hex) 0D 5C 0A (то есть \r\\\n) на (hex) > RNA> 5C 72 (литерал "\r")? > > awk -v RS='' '{gsub(/\r\\\n/,"\\r"); print}' Когда символы 0D 5C 0A -- последние байты в файле или когда за ними идёт n символов 0A, то они почему-то не заменяются (а хвост из символов 0A -- отрезается). Штатный awk из 5.3 и gawk из портов ведут себя в этом отношении одинаково. Поведение gawk исправляется установкой переменной RS в символ, о котором известно, что его не может быть в тексте (например, '\0') и до кучи -- переменной ORS в '', чтобы в конце не выводился лишний '\n'. Что делать со штатным awk -- я не нашёл. -- rnd. --- ifmail v.2.15dev5.3 * Origin: Otto-von-Guericke-Universitaet Magdeburg, FIN (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/32636dfb1ad60.html, оценка из 5, голосов 10
|