У меня есть файлы, в которых есть словацкие символы. Я скопировал их в свой Ubuntu, теперь они содержат эти странные символы, кто-нибудь знает, как мне удалить этот символ?
Вы можете воспользоваться утилитой iconv
, способной преобразовывать строку из кодировки символов в другую, а также выполнять транслитерацию в аналогичные символы, когда кодировка назначения пропускает их.
Следующий скрипт переименует каждый файл, переданный в командной строке, в версию ascii с тем же именем. Измените переменную input_enc
, если необходимо, и запустите --no-test
в качестве первого параметра для реального переименования.
#!/bin/bash
input_enc="UTF-8"
test=1
if [[ $1 == '--no-test' ]]; then
test=0
shift
else
echo "This is a simulation"
echo "run with --no-test as first parameter to really rename"
echo
fi
normalize() {
local f="$1"
echo "$f" | iconv -f "$input_enc" -t ASCII//TRANSLIT
}
for f; do
g="$(normalize "$f")"
if ((test)); then
echo mv -i "$f" "$g"
else
mv -i "$f" "$g"
fi
done