Используя ответы Денниса Уильямсона и Альберто Закканьи, я придумал следующий скрипт, который преобразует все файлы указанного типа из всех подкаталогов.Затем выходные данные собираются в одну папку, которая задается как /path/to/destination
mkdir /path/to/destination
for a in $(find . -name "*.php");
do
filename=$(basename $a);
echo $filename
iconv -f iso-8859-1 -t utf-8 <"$a" >"/path/to/destination/$filename";
done
Базовое имя функции возвращает имя файла без пути к файлу.
Альтернатива (пользователь интерактивно): Теперь я также создал пользовательский интерактивный скрипт, который позволяет вам решить, хотите ли вы перезаписать старые файлы или просто переименовать их.Дополнительная благодарность: tbsalling
for a in $(find . -name "*.tex");
do
iconv -f iso-8859-1 -t utf-8 <"$a" >"$a".utf8 ;
done
echo "Should the original files be replaced (Y/N)?"
read replace
if [ "$replace" == "Y" ]; then
echo "Original files have been replaced."
for a in $(find . -name "*.tex.utf8");
do
file_no_suffix=$(basename -s .tex.utf8 "$a");
directory=$(dirname "$a");
mv "$a" "$directory"/"$file_no_suffix".tex;
done
else
echo "Original files have been converted and converted files were saved with suffix '.utf8'"
fi
Удачи с этим, и я был бы благодарен за любые комментарии, чтобы улучшить его, спасибо!