Видео ролики бесплатно онлайн

Смотреть домашнее видео

Официальный сайт aksakal 24/7/365

Смотреть видео бесплатно

Mutagena 29.03.2012 23:40

Есть проблема!Рекурсивный проход по директориям и копирование всех найденных файлов в одну директорию с перекодированием имени файла.

Привет. Нужна помощь асов консоли.
Необходимо реализовать рекурсивный проход по директориям и копирование всех найденных файлов в одну директорию с перекодированием имени файла (из cp1251 в utf8).
Это должен делать этот короткий скриптик. Помогите найти в нём ошибку.
1
2
3
4
  find /home/user/dir1 -type f -print \
| awk -F/ -v dst="/home/user/dir2" \
'{printf "f=\"%s/$(echo %s | iconv -f WINDOWS-1251 -t UTF-8)\"; cp \"%s\" \"$f\"\n", dst, $NF, $0}' \
| sh




Тэги: awk find shell shell scripting
+ 3 -
Похожие Поделиться

settler 29.03.2012 23:53 #
+ 2 -
Для таких целей можно использовать convmv (искать в репах своего дистрибутива).
atragor 30.03.2012 09:26 #
+ 1 -
1
2
3
find /home/user/dir1 -type f -print \
| awk -F/ -v dst="/home/user/dir2" \
'{printf "f=$(echo %s | iconv -f WINDOWS-1251 -t UTF-8); cp \"%s\" \"%s/$f\"\n", $NF, $0, dst}' / sh



Не проверял.
Mutagena 30.03.2012 10:22 #
+ 0 -
Эх, пришлось сломать глазки, но вот работающий вариант, я молодец:
1
2
3
find /home/user/dir1 -type f -print \
| awk -F/ -v dst="/home/user/dir2" \
'{printf ("f=\"%s/`(echo \"%s\" | iconv -f cp1251 -t utf8)`\"; cp \"%s\" \"$f\"; \n", dst, $NF, $0)}'


Было 2 проблемы, не исполнялись команды при формировании значения переменной f (нужно было обернуть в ``) и не учитывались имена файлов с пробелами (пришлось аргемент для echo обернуть в "").

Смотреть онлайн бесплатно

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн