Транслит при помощи КОИ-8
Кодовая страница КОИ-8 создавалась таким образом, что бы при передаче русского текста по 7-битному каналу связи (то есть, теряя восьмой бит) сохранить его читаемость. Таким образом «Привет, медведь!» превращается в «pRIWET, MEDWEDX!». (Подозреваю, что регистр букв нарочно поменяли местами дабы проще было заметить потерю значащего бита.)
Эту особенность можно применить для создания примитивного транслита — записи русского текста буквами латинского алфавита. Для этого необходимо конвертировать исходный текст в КОИ-8 и отбросить восьмой бит.
$ echo 'Привет, медведь!' | \
iconv -t koi8-r | \
perl -pe '$_ = pack "C*", (map {$_ & ~(1<<7)} unpack "C*")'
pRIWET, MEDWEDX!
Теперь нужно исправить регистр. Несложно заметить, что в КОИ-8 прописная русская буква отличается от строчной лишь шестым битом: «Ы» — 11111001, «ы» — 11011001. Также видно, что все буквы (кроме «ё») имеют установленный седьмой бит. Поэтому проверяем является ли текущий символ буквой и, если да, инвертируем его шестой бит:
$ echo 'Привет, медведь!' | \
iconv -t koi8-r | \
perl -pe '$_ = pack "C*", (map {($_ &= ~(1<<7)) & 1<<6 ? $_ ^ 1<<5 : $_} unpack "C*")'
Priwet, medwedx!