Отправляет email-рассылки с помощью сервиса Sendsay

Как перекодировать кучу файлов за раз?

День добрый.

Проблема такая: есть дистрибутив, который был раскрыт "умным"
винзипом с конвертацией в досовский формат. Потом он был
переупакован. В итоге скрипты в Линюхе не читаются.

Можно каждый файл обрабатывать (и повеситься при этом). Можно
написать прогу на ПХП. Но наверняка есть красивый способ, как это
можно сделать с помощью шела. Кто знает, поделитесь пожалуйста.

Ответить   Mon, 22 Dec 2003 12:14:30 +0300 (#40304)

 

Ответы:

On Mon, 22 Dec 2003 12:14:30 +0300, <vabv***@m*****.ru> wrote:

iconv -f src_enc -t koi8-r -o output_file file
Это по отдельности каждый файл. А можно написать простенький скрипт:

#!/bin/sh
for i in `find ./`; do
if ! [ -d $i ]; then
iconv -f cp1251 -t koi8-r -o $i $i
fi
done

Обязательно сохранить все пробелы.
[Запускать из каталога, содержимое которого надо перекодировать]

Ответить   NixoiD Mon, 22 Dec 2003 21:36:33 +0200 (#40368)

 

Добрый день.

^^^^^^^
По поводу возник вопрос: а вот эта вещь - это автоапределённая
кодировка?

Леший.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 23 Dec 2003 01:14:01 +0300 (#40423)

 

On Tue, 23 Dec 2003 01:14:01 +0300, <my_temp_ema***@h*****.ru> wrote:

нет. Это мне так удобнее было писать :) Здесь вы выбираете кодировку, из
которой хотите перекодировать.

Ответить   NixoiD Tue, 23 Dec 2003 16:23:37 +0200 (#40867)

 

Здравствуйте, NixoiD.

Тогда ещё один вопрос: а какая команда определяет кодировку файла?

Заранее спасибо,
Леший.

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru

http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Sun, 28 Dec 2003 17:06:58 +0300 (#43561)

 

Hello NixoiD,

Monday, December 22, 2003, 9:36:33 PM, you wrote:

А помойму надо натравливать не перекодировку, а перегон в униховый
формат перевода строчек. Этим занимается dos2unix. Но при этом надо
трогать только текстовые файлы. Ежели умный вынзип покоцал бинарники,
то приплыли и сушим весла ;)

Ответить   Tue, 23 Dec 2003 12:37:03 +0200 (#40699)

 

В сообщении от Вт 23 Дек 2003 12:37 Igor Strizhakov написал:

Хм, а скриптик, ИМХО чуток неправильный =)
Кто еще не пробовал - без бекапа не советую =)
#!/bin/sh
mkdir out
for i in `find ./`; do
if ! [ -d $i ]; then
iconv -f cp1251 -t koi8-r $i -o out/$i
fi
done

Потом руцями из каталога /out в исходный

Ответить   Ischenko Yaroslav Wed, 24 Dec 2003 00:12:13 +0200 (#41110)

 

В сообщении от 22 Декабрь 2003 12:14 vabv***@m*****.ru написал(a):

--начало скрипта для bash
#!/bin/bash

for i in *.txt
do
echo "$i"
cat $i | iconv -f CP866 -t KOI8R -o $i
done;
--конец скипта для bash
Хотя вообще я в этом деле не силен, поэтому backup все и если
надо не только txt файлы, то измени условие, по которому будут
выбраны файлы, а именно строку *.txt на нужное условие

Ответить   Tue, 23 Dec 2003 14:38:12 +0300 (#40754)