Como remover caracteres ruins dos nomes de arquivos?

2

Eu tenho arquivos que tinham caracteres eslovacos neles Eu os copiei para o meu Ubuntu agora eles têm esses símbolos estranhos neles, alguém sabe como eu removerei esses caracteres?

    
por Max 12.10.2011 / 17:10

1 resposta

3

Você pode aproveitar o utilitário iconv , converter uma string de uma codificação de caracteres em outra e também realizar a transliteração para um caractere semelhante, quando a codificação de destino não as tiver.

O seguinte script renomeará cada arquivo passado na linha de comando para uma versão ascii do mesmo nome. Modifique a variável input_enc , se necessário, e execute com --no-test como primeiro parâmetro para realmente renomear.

#!/bin/bash

input_enc="UTF-8"

test=1
if [[  == '--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=""
  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
    
por enzotib 12.10.2011 / 17:36