Como remover caracteres não ingleses de uma string

0

Eu tenho um script BASH que eu escrevi que remove dados META de mp3 (etc), então eu os copio para reformá-los, se necessário, resample o mp3 e reasign os dados para fazer um diretório para corraspond ao artista / álbum ...

Eu tenho alguns discos de mp3 que não são do inglês no meio do título da música. Eu preciso saber a melhor maneira de remover essa parte do meio, deixando ambas as extremidades da picada juntas no título da música. usando exiftool eu retiro os dados META dando-me esta saída colocada no nome var

 ARTIST1="'exiftool -Artist "$FILENAME" -p '$Artist''"
 TITLE1="'exiftool -Title  "$FILENAME" -p '$Title''"
 ALBUM1="'exiftool -Album  "$FILENAME" -p '$Album''"


first strip... Artist is -> The Stranglers and Friends
first strip... Album is -> Live in
first strip... Title is -> The Raven – With Basil Gabbi

título da música em META Data

O Raven à¢ à¢ à¢ à¢ à¢ à ¢ â, à¢ à¢ à ¢ â, ࢠà à ¢ â, ¬Ã â € Åâ € ¦ â € œCom Basil Gabbi

como eu tiraria o que está entre o nome da música META para obter isso?

The Raven With Basil Gabbi

onde o syntext seria parecido com isto

 newSongName="$( what ever code goes here to strip out that non english sting part )"

para que eu possa escrever a nova string de volta no arquivo substituindo os dados META antigos pela nova string.

Obrigado

    
por uxserx-bw 19.11.2015 / 18:52

2 respostas

1

a string com garbble nela - >

 $ x="The Raven ƒÆ’¢â‚¬â€œ With Basil Gabbi"

isso mantém todas as letras maiúsculas e minúsculas a-z remove todo o resto

$ echo ${x//[^A-Za-z ]/}

deixando a string como esta

The Raven With Basil Gabbi

ficaria parecido com este script

title=${TITLE1}
## holds on to normal chars rid the rest
title=${title//[^A-Za-z ]/}
    
por 19.11.2015 / 21:56
2

Isso deve te deixar bem perto:

newSongName=$(echo "$TITLE1" | tr -dc '[:print:]')

Ele diz a tr para excluir caracteres que não estão no print nome da classe . Você poderia experimentar outras classes de caracteres conforme necessário.

    
por 19.11.2015 / 19:41