Когда же кто-нибудь из наших программеров напишет программу "переключалку"?
Иногда просто забываешь, что раскладка в данный момент включена английская
и набираешь по-русски. Получается вместо "Привет!" - "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.