Перекодировать файлы из одной кодировки в другую

Модератор: Модераторы разделов

Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Перекодировать файлы из одной кодировки в другую

Сообщение TuLiss »

пока что родилось только это:
for i in `find $1 -type f`; do iconv -f $2 -t $3 <"$i"> "${i%/*}/n${i##*/}"; done


а вообще задача такая:

Есть папка и в ней множество подпапок и документы.

так вот, как бы эти все документы перевести из одной кодировки в другую + перемещать эти документы в указанную папку с соблюдение иерарии исходной папки?

честно говоря мозг просто сломан )+
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Перекодировать файлы из одной кодировки в другую

Сообщение Shura »

convmv
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: Перекодировать файлы из одной кодировки в другую

Сообщение TuLiss »

Shura писал(а):
10.11.2006 17:26
convmv


насколько мне помнится он сами папки или файлы перекодирует, а мне надо содержимое.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
skeletor
Сообщения: 1224

Re: Перекодировать файлы из одной кодировки в другую

Сообщение skeletor »

Добавь в скрипт рекурсивный вход в каталоги.
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: Перекодировать файлы из одной кодировки в другую

Сообщение cheer »

Tuliss:
Ну find и -exec, тогда и всё содержимое каталогов возьмёт.
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64

Re: Перекодировать файлы из одной кодировки в другую

Сообщение vadiml »

я, когда перелазил с cp1251 на utf8, делал так:

Код: Выделить всё

find | sort -r | while read f; do
     fn=$(basename "$f"|iconv -f cp1251 -t utf-8);
     [ "$fn" = "$(basename "$f")" ] || mv "$f" "$(dirname "$f")/$fn";
done

взято с http://community.asplinux.ru/forum/1/60832/60841/
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Перекодировать файлы из одной кодировки в другую

Сообщение sash-kan »

vadiml
(TuLiss @ Nov 10 2006, в 19:19) писал(а):мне надо содержимое

TuLiss
по простому — через временный файл. типа:
for i in $(find $1 -type f); do iconv -f $2 -t $3 -o /tmp/0000 $i; cp /tmp/0000 $i ; done
или
find $1 -type f | while read i; do iconv -f $2 -t $3 -o /tmp/0000 $i; cp /tmp/0000 $i ; done
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: