palm, linux makeztxt и iconv

Я уже писал про то, что АБТФ имеет то преимущество, что достаточно просто закидывается в палм. У меня это происходит следующим образом. Для начала я копирую файл в папку ~/tmp и конвертирую его в виндовую кодировку с помощью iconv:


cp ~/blog/main.txt ~/tmp/main.txt
iconv -t=cp1251 -c main.txt > main_cp.txt

Ключ -t=cp1251 указывает куда конвертировать (в данном случае из utf-8, в которой я веду заметки в cp1251, которую понимает палм), ключ -c нужен, чтобы подавлять вывод заведомо непечатаемых символов, которые есть в utf-8, но которых нет в cp1251 (например, знак йены).

Дальше остается преобразовать main_cp.txt в .pdb файл. Это можно сделать простой командой:

makeztxt -o main.pdb main_cp.txt

Ключ -t добавляет в файл заголовок под которым файл будет виден в базе палма.

makeztxt -t blog_main -o main.pdb main_cp.txt

Мне удобно, чтобы файл имел оглавление — сразу автоматически расставленные заголовки по всем ключевым разделам блога (90000 строк очень долго листаются в поисках нужного раздела). Поэтому я добавляю ключ -r, который расставляет закладки по всем заголовкам разделов. Разделы находятся через регулярное выражение ^#.{,15} — начало строки, за которым следует решетка #, за которой следует пятнадцать или меньше любых символов. Ключ -l (list) выводит на печать список сгенерированных закладок, чтобы можно было контролировать процесс.

makeztxt -r "^#.{,15}" -l -t .main2010 -o main.pdb main_cp.txt

Теперь можно скопировать main.pdb в память палма и наслаждаться :)

У меня все эти операции проделываются через скрипт ~/bin/bmz, который выглядит примерно так:

#! /bin/bash

cd ~/tmp
cp ~/blog/main.txt .
iconv -t=cp1251 -c main.txt > main_cp.txt
makeztxt -r "^#.{,15}" -r "^@ 20..-..-.. @ ..:.." -l -t .main2010 -o main.pdb main_cp.txt 
cp ~/blog/cites.txt .
iconv -t=cp1251 -c cites.txt > cites_cp.txt
makeztxt -r "^#.{,15}" -r "^@ 20..-..-.. @ ..:.." -l -t .cites2010 -o cites.pdb cites_cp.txt 
rm ~/tmp/main.txt
rm ~/tmp/main_cp.txt
rm ~/tmp/cites.txt
rm ~/tmp/cites_cp.txt

Достаточно набрать bmz в командной строке, а потом скопировать получившиеся .pbd-файлы в палм. Поскольку у меня сейчас Palm Sony с внешней карточкой, я просто вставляю ее в кардридер и копирую файлы напрямую.

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: