Заметки на полях: Рекурсивно перекодируем файлы в папке и вложенных папках с кодировки windows-1251 в UTF-8 (utf8)

Заметки, Убунтология

Метки (теги) : , , ,

Автор: admin

Перенеся некий очень старый проект с windows os на Linux я решил воспользоваться утилитой iconv для изменения кодировки всех тех файлов которые мне нужны были с кодировки windows-1251 на utf8. Но так как файлов было много, а я ленивый, то я написал скрипт, который все делает за меня.

Прототип скрипта я нашел на википедии, немного допилил до нужного состояния, и в бой.

Вот сам скрипт:

# !/bin/sh
find $1 -type f -name '*.'$2 -o -name '*.'$2 | while read i
    do
    echo $i
    iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp
    mv -f tmp "$i"
    done

Сохраняете этот код в файл, я его назвал iconv.sh

затем даете этому файлу разрешение на выполнение как программы

Допустим, вы сохранили файл iconv.sh в домашнюю директорию в папку scripts

Тогда запустив терминал вы смело можете набирать такие вот команды

cd scripts
sh iconv.sh folder js

Некоторые объяснения по командам выше:
первая команда переходит из домашнего каталога в папку scripts, в которой находиться наш скрипт iconv.sh
вторая команда уже собственно и запускает перекодировку
sh – запускает сам скрипт
iconv.sh – название файла скрипта
folder – путь к той папке, файлы которой нам нужно перекодировать, этот путь может выглядеть так, например, ../server/project – перекодирует все файлы в   папке server/project, которая находиться в домашней директории юзера (пользователя системы)
js – расширение файлов, которые нужно переконвертировать.

На этом все, до встречи …

Оставить комментарий