Модератор: Модераторы разделов
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X
Сообщение
TuLiss » 10.11.2006 16:25
пока что родилось только это:
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
Сообщение
Shura » 10.11.2006 17:26
convmv
Rock'n'roll мертв © БГ
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X
Сообщение
TuLiss » 10.11.2006 20:19
Shura писал(а): ↑ 10.11.2006 17:26
convmv
насколько мне помнится он сами папки или файлы перекодирует, а мне надо содержимое.
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
skeletor
Сообщения: 1224
Сообщение
skeletor » 11.11.2006 10:48
Добавь в скрипт рекурсивный вход в каталоги.
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current
Сообщение
cheer » 11.11.2006 11:45
Tuliss:
Ну find и -exec, тогда и всё содержимое каталогов возьмёт.
vadiml
Сообщения: 446
ОС: fc12.x86_64
Сообщение
vadiml » 11.11.2006 19:55
я, когда перелазил с 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
Сообщение
sash-kan » 11.11.2006 22:53
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