Как пакетно удалить плохой символ из имен файлов?

У меня есть файлы, в которых есть словацкие символы. Я скопировал их в свой Ubuntu, теперь они содержат эти странные символы, кто-нибудь знает, как мне удалить этот символ?

2
задан 12 October 2011 в 19:13

1 ответ

Вы можете воспользоваться утилитой 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
0
ответ дан 12 October 2011 в 19:13

Другие вопросы по тегам:

Похожие вопросы: