Когда же кто-нибудь из наших программеров напишет программу "переключалку"?

Иногда просто забываешь, что раскладка в данный момент включена английская и набираешь по-русски. Получается вместо "Привет!" - "Ghbdtn!". Или наоборот, тогда вместо "Dear friend" будет "Вуфк акшутв". Под Win есть программы, которые позволяют поставить набранное с головы на ноги одним нажатием по клаве, как, например, "Опечатка" Евгения Голомина, или, как Punto Switcher, даже автоматически, отслеживая абаракадабру по словарям.

А под Linux таких программ пока нет...

Самое интересное, что такие "Ghbdtn!" иногда присылают по и-мейлу...

Я ничего умней не придумал как набрать для прочтения такого рода посланий вот такую тираду, подставляя, естественно, после echo нужный текст:

[ns@localhost ns]$ echo 'Ghbdtn! Rfr ltkf? Xnj yjdjuj?' |tr 'f,dult`;pbqrkvyjghcnea[wxio]sm.zF<DULT~:PBQRKVYJGHCNEA{WXIO}SM>ZфисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ' 'абвгдеёжзийклмнопрстуфхцчшщъыьюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Привет! Как дела? Что нового?
[ns@localhost ns]$

Ну и наоборот, естественно:

[ns@localhost ns]$ echo 'Вуфк акшутв! Црн рфму нщг иуут ыщ ышдуте дфые цуулы?' |tr 'f,dult`;pbqrkvyjghcnea[wxio]sm.zF<DULT~:PBQRKVYJGHCNEA{WXIO}SM>ZфисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ' 'абвгдеёжзийклмнопрстуфхцчшщъыьюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Dear friend! Why have you been so silent last weeks?
[ns@localhost ns]$

Подобным образом можно нормализовать текст, набранный с включенным по ошибке CapsLock'ом:

[ns@localhost ns]$ echo lINUX - ЭТО ДЕЙСТВИТЕЛЬНО СИСТЕМА! |tr "абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ" "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZабвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz"
Linux - это действительно система!
[ns@localhost ns]$

То же можно проделать с целым файлом, используя вместо echo команду cat. Кроме того, можно, например, в файле поменять все заглавные буквы на строчные:

[ns@localhost ns]$ cat filename.txt |tr "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ" "абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz">new_filename.txt

И наоборот, все строчные заменить на заглавные:
[ns@localhost ns]$ cat filename.txt |tr "абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz" "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ">new_filename.txt

Храню эти тирады в отдельном файле и по необходимости делаю copy&paste.




Хостинг от uCoz