|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Victor Sudakov 2:5020/400 20 Aug 2007 17:28:33 To : Valentin Davydov Subject : Re: напечатать строку вместо кодов символов -------------------------------------------------------------------------------- Valentin Davydov wrote: > >> > > >> >Есть строка вида "\D0\A0\D1\83\D1\87\D0\BA\D0\B8\D0\BD". > >> >Чем бы удобнее в командной строке воспользоваться, чтобы напечатать > >> >сами символы вместо их кодов? Hасколько я понял, printf(1) должен > >> >уметь, но не соображу, как воспользоваться. > > > >> Ты уверен, что printf(1) должен? Я там про LC_CTYPE ничего не нашёл. > > > >Hе понял, при чём тут LC_CTYPE. Я говорил про это: > > > > \num > > \0num Write an 8-bit character whose ASCII value is the 1-, 2-, > > or 3-digit octal number num. > > > >А перекодировать из UNICODE я сам сумею. > > > > > >> А если ты считаешь, что умеет, то > >> printf "%b" $(printf "\\%o" $(echo $string | sed 's/\\/ 0x/g')) > > > >Бррр. > Что - "Бррр"? Я сначала было это дело через backquote нарисовал, вот там > действительно бррр - backslashи в строку не влезли. Должен существовать простой способ, без отбрасывания слешей средствами sed и прочих сложностей. Вот такая штука работает ведь: printf "\323\317\302\301\313\301\n" -- Victor Sudakov, VAS4-RIPE, VAS47-RIPN 2:5005/49@fidonet http://vas.tomsk.ru/ --- ifmail v.2.15dev5.4 * Origin: AO "Svyaztransneft", SibPTUS (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/31426305ec51a.html, оценка из 5, голосов 10
|