Видео Видеопособия Дистрибутивы Интернет Новости Системный администратор дистрибутив защита систем мониторинг мошенники обзор подсчет трафика сервер спам учет оборудования Apache Asterisk backup BSD calculate DVD Fedora firewall FreeBSD IDS KDE 4.0 Kubuntu LAMP Linux Linux Mint m0n0wall netgraph OpenSource openSUSE OSSIM postfix pptp router server Snort Squid SysCP TrueBSD Ubuntu video
или выше.Нашел на старую статью почему бы не выложить у себя.
Очень часто при работе с файлами приходится преобразовывать их в другой формат. Особенно этот вопрос актуален для пользователей Linux, потому что в этой системе еще со времен первых Unix’ов сложились свои форматы файлов и при переносе их на компьютеры работающие под управлением Windows возникает проблема работы с файлами этих форматов, которая решается как правилом путем поиска соответствующих программ просмотра. Как вы понимаете, данный вариант не всегда приемлем, так как нужную программу еще надо найти, и еще не будешь же таскать все эти программы с собой и устанавливать на каждом компьютере. Самый простой вариант решения этой проблемы это преобразовать файлы к требуемому формату, который может быть прочитан на нужном компьютере.
В данной статье будут рассмотрены варианты преобразования только текстовых файлов из одного формата в другой, не будет затронуты вопросы преобразования графических, звуковых файлов и варианты преобразования с одного языка программирования на другой. Хочу еще предупредить, что все эти программы консольные. Что, отстой! Кричат некоторые пользователи. Да, я в принципе согласен, недостатки на лицо. Необходимо помнить не только название программы (впрочем, не совсем так, автодополнение в bash еще ни кто не отменял), но и различные параметры и опции. Но, есть и положительные стороны. К ним относится малый размер программ, малое время загрузки в оперативную память, отсюда и меньшее время выполнения, отсюда и меньшие требования к системным ресурсам (не у всех же Атлоны и четвертые пеньки).
А еще представьте такую ситуацию, что вам надо преобразовать сразу несколько файлов и еще сменить некоторые параметры, вручную через «Сохранить как …» не совсем удобно да и время, понимаете ли, а в консоли это возможно. Также в программах большинство опций унифицировано, и запомнив параметры одной, научится работать в аналогичной не составит большого труда. И еще, практически все рассмотренные программы входят в стандартную поставку так, что искать их по Интернету не придется.
Итак, по порядку. С первой проблемой с которой я столкнулся была необходимость перенести документ в формате PostScript на компьютер работающий под Windows с этого пожалуй и начнем. Итак, первая программа вызывается gs. Просто набрав данную команду с названием файла с расширением ps вы можете просто просмотреть указанный файл, а добавив опцию sDEVICE=<devname> можно преобразовать в другой формат или подготовить файл для выдачи на принтер определенной марки, а с помощью опции sOutputFile= , как вы поняли можно указать имя выходного файла. Вот так можно конвертировать файл PostScript в рисунок с расширением bmp. gs -sDEVICE=bmp16m -sOutputFile=test.bmp test.ps . Для преобразования из ps в pdf формат существуют программы специально для этого предназначенные. Они так и вызываются ps2pdf. Причем существуют несколько программ. ps2pdf – по умолчанию преобразует в формат pdf 1.3 который можно сменить используя опцию -dCompatibility=1.x. Если сразу захотите задать формат, то можно воспользоваться программами ps2pdf12 или ps2pdf13. Формат вызова программы такой ps2pdf13 input.ps output.pdf, если вместо имени файла используется тире «-» то в качестве входного (выходного) файла используется стандартный ввод (вывод). Кроме этого существует множество аналогичных программ для конвертирования в другие форматы, например ps2ascii.
Следующий формат с которым часто придется сталкиваться в Linux это SGML. Для того чтобы вы могли его преобразовать необходимо установить пакет linuxdoc. Так как сам формат наиболее близок к HTML, то к нему и будем по началу преобразовывать. Формат вызова команды такой:
$ linuxdoc –bakend=format(html, rtf, text …) –papersize=size –language=ru file_name.sgml
Я думаю, что приведенные параметры очевидны. Чтобы упростить жизнь юзеру и здесь есть отдельные команды для преобразования к тому или иному формату. Например, следующая команда конвертирует из SGML в HTML.
sgml2html file_name.sgml
А с помощью опции -I – в создаваемые файлы, можно добавить ссылку на файлы изображения (next, prev, toc), которые копируются с каталога /usr/share/linuxdoc-tools/icons/ в текущий. А чтобы преобразовать в формат pdf выполните следующую команду:
sgml2latex –output=pdf file_name.sgml
причем в образованном файле будут работать все имеющиеся гиперссылки. Следующие программы предназначены для конвертирования документов набранных в формате MS Word (.doc) в другие форматы. Они будут доступны если у вас установлен пакет wv. После установки пакета будут доступны несколько программ предназначенных для преобразования в разные форматы. Набрав в командной строке wvVersion file_name.doc можно узнать к какой версии Word принадлежит документ. Команда
wv Html –charset=koi8-r test.doc test.html
, как вы уже поняли, перегоняет документ Word в html-файл и устанавливает для него кодировку koi8-r. Причем программа вполне корректно переносит таблицы и в некоторых файлах генерирует не так уж много мусора. Добавив опцию –password=password, можно преобразовывать файлы закрытые паролем.
Работу с другими форматами я думаю, разберете сами. Следующая программа немного выпадает из общего плана, но полезность ее очевидна. Это программа iconv, входящая в пакет glibs любого дистрибутива, назначение которой перекодирования текстовых файлов с одной кодировки в другую. Формат вызова программы такой
iconv -f исходная_кодировка -t необходимая_кодировка old_file < new_file , где возможные варианты кодировок можно узнать запустив программу с опцией –list. Например самая популярная задача по перекодировке выглядит так
iconv -f WINDOWS-1251 -t KOI8R cp1251.txt > koi8r.txt
Cледующая программа antiword предназначена для преобразования документов в формате Word 6, 7, 97 и 2000 в текстовый или файл формата PostScript. После установки программы (make all, make install) создайте в домашнем каталоге подкаталог .antiword (именно с точкой) и перенесите в него все файлы из каталога Resources который находится в каталоге в котором вы распаковали исходные тексты программы. Теперь с помощью вызова
antiword -t -m cp1251.txt test.doc
можно вывести на терминал содержимое файла test.doc, причем программа вполне корректно (как это вообще возможно на терминале) отображает как содержимое самого файла со всеми элементами форматирования так и таблицы. Если файл находится в кодировке koi8-r то опцией -m необходимо подключить файл koi8-r.txt. Если есть необходимость конвертировать Word’овский файл в формат PostScript воспользуйтесь следующей командой
antiword -p a4 -m koi8-r.txt text.doc > 1.ps
т.е. добавили размер страницы (доступны еще форматы letter и legal). Кстати при использовании данной программы вам нечего боятся макровирусов они попросту не будут работать.
И напоследок вкратце упомяну об очень мощной утилите a2ps с помощью которой можно подготовить документ к выводу на печать в формате PostScript или в файл. Опций у программы большое количество о некоторых я расскажу. Представьте себе такую ситуацию вы как прогрессивный человек написали себе шпору на экзамен (заметки на лекцию) на компьютере, но естественно в формате А4 нести ее с собой я бы сказал не совсем удобно. Для этого надо уменьшить шрифт и разбить на маленькие части. Для этого выполняем такую команду
a2ps –columns=4 –font-size=10 -j -encoding=koi8 shpora.txt -o shpora.ps
что мы сделали, установили количество колонок текста равным четырем, размер шрифта – 10, параметр -j означает рамку вокруг текста, указали необходимую кодировку, исходный файл и с помощью флага -о выходной, результат посмотрите на рисунке. Опций как я уже говорил много и с помощью них с исходным файлом можно проделать практически все чего душа пожелает.
Вот мы кратко рассмотрели некоторые программы для работы с текстовыми файлами в Linux. Сразу скажу я не старался рассказать обо всех подобных программах по причине их большого разнообразия, а только о наиболее часто мной используемых. Более подробную информацию можно узнать запустив соответствующий man или команду с опцией –help, а лучше оба варианта, я заметил, что информация, выводимая при этом, иногда может отличаться. Успехов.