Использование
Кладем скрипт в нужный каталог и запускаем. В результате получим файлы с расширением ".win.txt". Оригиналы файлов при этом удаляются!Код с комментариями
#!/bin/bash
# Проходим циклом по всем файлам в текущем каталоге с расширением txt
# В переменной q содержится имя текущего файла
for q in *.txt
do
# Удаляем расширение
t=$(echo "$q" | sed -e 's/\.txt$//g')
# Выводим имя файла
echo "$t"
# Перекодируем содержимое файла из UTF-8 в WINDOWS-1251 и удаляем оригинал
iconv -c -f UTF-8 -t WINDOWS-1251 "$q" > "$t.win.txt" && rm "$q"
done
(или на gist.github.com)
Основную работу делает команда iconv. Ее параметры:
-с — игнорирование ошибок
-f — исходная кодировка
-t — необходимая кодировка