Мы работаем  БЕЗ ВЫХОДНЫХ и выезжаем по всему ставропольскому краю.

СКАЧАТЬ БЕСПЛАТНО ПОПУЛЯРНЫЕ ПРОГРАММЫ:
(8652) 90-40-50

ВЫ    НАХОДИТЕСЬ   НА  САЙТЕ КОМПЬЮТЕРНОЙ  ПОМОЩИ В СТАВРОПОЛЕ!
Всегда можно получить качественную консультацию у нашего специалиста по  вопросам, связанным с ремонтом компьютеров, ремонтом ноутбуков, настройкой сетей, всем видам компьютерной помощи, позвонив по нашему телефону в городе Ставрополе
90-40-50
Компьютерная помощь и ремонт компьютеров у нас – всегда лучшее решение!
Copyright   © 2009 - 2013

  
  
  
      

  


Любое цитирование и перепечатка информации разрешается и приветствуется при указании активной ссылки на сайт komp26.ru
Невозможное - возможно: недорого, недолго, нестрашно
w Roman" class="ws12">
Утилиты преобразования файлов

Одна из самых значительных проблем, возникающих при совместном использовании файлов в Linux и Windows, связана с различием принятых окончаний строк в текстовых файлах. К счастью, есть несколько способов решения этой проблемы:
• Если вы обращаетесь к файлам на смонтированном разделе на той же машине, можно разрешить ядру автоматически преобразовывать файлы, как это описано в разделе «Файловые системы и монтирование» в этой главе. Но пользуйтесь этим аккуратно!
• Стандартные редакторы, такие как Emacs и vi, могут автоматически выполнять преобразование во время загрузки или сохранения файла.
• Имеется большое количество утилит, выполняющих преобразование файлов из одного формата окончания строк в другой. Некоторые из них могут выполнять и другие типы преобразований.
• Напишите собственную утилиту преобразования на том языке программирования, который вам больше нравится.

Если вас интересует только преобразование символов перевода строки, то написать программу для преобразования файлов очень просто. Чтобы преобразовать из формата DOS в формат UNIX, замените все вхождения (\r\f или \r\n) в файле на символ перевода строки (\п). Для преобразования в обратном направлении замените все символы перевода строки на . Приведем две программы на Perl, которые решают эту задачу. Первая из них, которую мы назовем d2u9 преобразует файлы из формата DOS в формат UNIX: #!/usr/bin/perl while () { s/\r$//; print } Следующая программа (которую мы назовем u2d) преобразует файл из формата UNIX в формат DOS: #!/usr/bin/perl while (

) { s/$/\r/; print } Обе команды читают входной файл со стандартного устройства ввода и пишут выходной файл на стандартное устройство вывода. Легко модифицировать примеры так, чтобы имена входного и выходного файлов задавались в командной строке. Если вам лень писать такие утилиты самостоятельно, можете поискать в своем дистрибутиве Linux программы dos2unix и unix2dos9 которые действуют аналогично нашим простым d2u и u2d9 а также принимают имена файлов в командной строке. Другая аналогичная пара утилит - fromdos и todos.

Если вы не найдете ни одной из них, попробуйте команду flip9 которая может преобразовывать файлы в обоих направлениях. Если эти простенькие утилиты кажутся вам недостаточно мощными, можете попробовать recede. Эта программа преобразует практически любые стандарты текстовых файлов. Простейший способ использования recode предполагает указание прежнего и нового набора символов (кодировки текстового файла) и файла для преобразования. recode заменит старый файл на преобразованный файл с тем же именем. Например, для преобразования текстового файла из Windows в UNIX можно ввести: recode ibmpc:latin1 text file textfile будет заменен на преобразованную версию. Нетрудно догадаться, что для преобразования этого файла обратно в кодировку Windows надо ввести: recode latinl:ibmpc textfile Помимо кодировки ibmpc (используемой в Windows) и latinl (для UNIX) имеются и другие возможные варианты, среди которых есть latex для кодировки диакритических знаков в стиле LATgX и texte для кодировки почтовых сообщений на французском языке. Полный список можно получить, введя команду: recode -1 Если вам не нравится привычка recode заменять ваш старый файл новым, можно воспользоваться тем фактом, что recode может также читать из стандартного потока ввода и писать в стандартный поток вывода.

Для преобразования файла dostextfile в unixtextfile без удаления dostextfile можно выполнить: recode ibmpc:latinl < dostextfile > unixtextfile С помощью описанных выше утилит можно достаточно комфортно управляться с текстовыми файлами, но это только начало. Например, растровая графика в Windows обычно сохраняется как файлы Ьтр. К счастью, имеются средства преобразования файлов Ьтр в графические файлы формата png или хрт, которые чаще используются в UNIX. Среди них есть Gimp, который, возможно, входит в ваш дистрибутив. Ситуация осложняется, когда дело доходит до других файловых форматов, например, используемых в офисных приложениях. В то время как в Windows разные инкарнации формата .doc, используемого текстовым процессором Word, превратились де-факто в общепринятый язык текстовых процессоров Windows, до недавнего времени прочесть такие файлы в Linux было почти невозможно. К счастью, недавно появились программы, способные читать (и иногда даже выводить) файлы .doc. Среди них офисный пакет KOffice, свободно распространяемый OpenOffice, и коммерческий пакет StarOffice 6.0, близкий родственник OpenOffice.

Однако следует знать, что такое преобразование никогда не будет безупречным, и, скорее всего, после него придется редактировать файл вручную. Даже в Windows преобразования не бывают корректными на 100%; если вы попытаетесь импортировать файл Microsoft Word в WordPerfect (или наоборот), то поймете, о чем мы говорим. Вообще, чем более популярным является формат файла в Windows, тем больше вероятность, что разработчики Linux предоставят способы для чтения или даже записи файлов этого формата. Другой выход - перейти при создании файлов в Windows на открытые файловые форматы, такие как RTF (Rich Text Format) или XML (Extensible Markup Language). В эпоху Интернета, где потоки информации текут свободно, использование закрытых недокументированных файловых форматов - это анахронизм.