Чтение онлайн

ЖАНРЫ

Linux для пользователя

Костромин Виктор Алексеевич

Шрифт:

Исполняемый модуль программы имеет название re. Его лучше поместить в один из каталогов, указанных в переменной PATH.

Программа вызывается из командной строки. Для того, чтобы перекодировать какой-то файл, который "не читается", в кодировку KOI8-R, надо дать команду:

[user]$ re ‹SourceFile› ‹DestFile›? K

где:

• ‹SourceFile› - исходный (нечитаемый) файл;

• ‹DestFile› - перекодированный файл;

• ?
– сообщает RE, что кодировка исходного файла не известна и re должна проанализировать файл и самостоятельно определить его кодировку;

• K - задает кодировку для результирующего файла (в данном случае KOI-8).

Если вы знаете кодировку исходного файла, вы можете указать ее вместо символа "?". Например, если вы хотите перекодировать файл letter.txt, который был создан в Windows, и вы знаете, что

файл сохранен в кодировке 1251, то надо дать команду:

[user]$ re letter.txt letter-koi.txt W K

После этого, просмотрев файл letter-koi.txt, вы увидите вполне читаемый русский текст в KOI8-R.

Полный формат вызова перекодировщика:

[user]$ re options filename_from filename_to cp_from cp_to [s/d/f] [u/l/s]

где options: [-v][-E|-R|-N][-e|-s]

• -v - выдавать информацию о ходе обработки;

• -n - не выдавать информацию о ходе обработки (задано по умолчанию);

• -E - преобразовывать все символы p, H из русских в английские;

• -R - преобразовывать все символы p, H из английских в русские;

• -N - оставлять все p, H (русские и английские) как в исходном тексте (задано по умолчанию);

• -e - перекодировать все символы 0x80 - 0xFF;

• -s - перекодировать только 64 символа русского алфавита (задано по умолчанию),

а cp_from и cp_to - любой из следующих символов, обозначающих возможные кодировки (по умолчанию - W,K).

Таблица 12.1. Обозначение кодировок в программе re.

Символ Кодировка Символ Кодировка
W Windows _ (подчеркивание) _xxe
D Dos % %hex
K KOI-8 \\ \'hex
L Latin G Graph_win
I Iso binhex
H HEX + +UTF7-
S ShiftKbrd C C_MIC
M Mac Y Y_c16
A AFF Z Z_c32
O Odd(UTF8_1) F F(UTF8_2)
B Base64 P Pict
E Express N N_Estl
T T-Html V V_Vpp855
U User X X_sp
 (тире) uue J J_diff

Как уже было сказано, если cp-from="?", то программа пытается самостоятельно определить кодировку исходного файла.

Если у вас по каким-либо причинам не оказалось ни одной из указанных программ-перекодировщиков, то для просмотра содержимого файла можно воспользоваться одним из браузеров Интернет, которые изначально ориентированы на работу с разными кодировками. Например, сгодится обычный lynx:

[user]$ lynx -assume_local_charset cp866 file.txt

Можно также загрузить "нечитаемый" файл в Netscape Navigator, после чего поменять кодировку через меню View / Character Set.

12.3. Проверка правописания

Прежде, чем перейти к рассмотрению текстовых редакторов под Linux, необходимо кратко рассмотреть программу

проверки правописания ispell. Дело в том, что проверка правописания - это одна из функций, которую должен иметь современный текстовый редактор, и многие из них подключают для выполнения этой функции именно ispell (или aspell). Существует русифицированный вариант этой программы, которой был разработан Владимиром Рогановым и Константином Книжником.

Установка ispell состоит из двух этапов: вначале надо установить саму программу, а затем установить словарь русского языка. Для установки самой программы ispell я воспользовался пакетом ispell-3.1.20-23.i386.rpm, а для его русификации - пакетом ispell-russian-3.1.20-23.i386.rpm. Оба пакета входили в состав дистрибутива Black Cat Linux 6.02. Для установки первого пакета достаточно дать команду

[root]# rpm -i ispell-3.1.20-23.i386.rpm

 а для второго - команду

[root]# rpm -i ispell-russian-3.1.20-23.i386.rpm.

После этого в каталоге /usr/lib/ispell появятся файлы русского словаря russian.aff и russian.hash (остальные словари, например, немецкий) можно удалить, если вы не собираетесь производить проверку правописания на этих языках.

Для проверки текста теперь достаточно дать команду следующего вида:

[user]$ ispell -drussian edit.htm

Естественно, имя файла edit.htm здесь взято для примера; вы должны подставить имя того файла, который вы хотите проверить, причем файл должен находиться в текущем каталоге, иначе надо указать полное имя файла с указанием пути.

Рис. 12.6. Проверка правописания с помощью ispell

Принцип работы программы ispell очень прост: каждое встречающееся в файле слово должно иметься в словаре программы. Если слово в словаре не найдено, считается, что найдена ошибка, и на экран выводится сообщение, пример которого можно увидеть на рисунке 12.5. В самой верхней строке выведено обнаруженное ошибочное слово и имя проверяемого файла. Ниже выведено несколько строк (число можно задать) из этого файла, содержащих обнаруженную ошибку. Если в словаре обнаружены слова, похожие на ошибочное, то они выводятся ниже (с порядковыми номерами). Далее следует строка подсказки и командная строка программы.

В командной строке в нижней части можно использовать следующие клавиатурные команды.

Таблица 12.2. Команды замены в программе ispell.

Команда Выполняемое действие
‹R› Заменить ошибочное слово (программа предложит набрать правильное слово в нижней строке экрана)
‹пробел› Пропустить данное вхождение слова
‹A› Пропустить все вхождения данного слова в текущей сессии работы с программой
‹I› Пропустить это слово и включить его в персональный словарь (который хранится в файле .ispell_russian в домашнем каталоге пользователя
‹U› То же самое, только слово записывается в нижнем регистре (маленькими буквами)
‹Q› Немедленный выход из программы (вначале запрашивается подтверждение, а проверяемый файл остается не измененным; сделанные замены не проводятся)
‹X› Прервать проверку, записать проведенные изменения и выйти из программы
‹!› Временный выход в оболочку shell

Если в качестве команды ввести порядковый номер одного из предложенных программой вариантов замены, то программа заменит ошибочное слово на слово, соответствующее набранному порядковому номеру варианта замены. Только номера надо вводить в точности так, как они предлагаются программой, т. е. с предшествующими значащим цифрам нулями (если они есть). И набирать номер надо, не вводя предварительно команду ‹R›, иначе ошибочное слово будет заменено просто на соответствующую цифру.

Программа ispell, как уже упоминалось, используется в качестве модуля проверки правописания во многих текстовых редакторах, например, в Emacs она обеспечивает проверку правописания непосредственно в процессе подготовки текста.

Поделиться с друзьями: