文字列から英語以外の文字を削除する方法

文字列から英語以外の文字を削除する方法

私はmp3などからMETAデータを削除するBASHスクリプトを作成し、必要に応じてそれを細かく切り取ってmp3をリサンプリングし、データを再設計してアーティスト/アルバムに対応するディレクトリを作成します。

曲のタイトルの途中で英語以外の文字を含むmp3をいくつか見つけました。途中の部分を削除し、曲のタイトルにきちんとした端を再配置するための最良の方法を知る必要があります。 Exiftoolを使用してMETAデータを削除し、出力をvar-nameに入れました。

 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

METAデータの曲タイトル

カラス������������������������������������������������������ ���������������バジルガビと

これを達成するために、METAデータソング名の間のコンテンツをどのように削除しますか?

The Raven With Basil Gabbi

構文は次のとおりです。

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

これにより、新しい文字列をファイルに書き換えることができ、古いMETAデータを新しい文字列に置き換えることができます。

ありがとう

ベストアンサー1

これは非常に近づくでしょう。

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

tr含まれていない文字を削除するように求められます。print クラス名。必要に応じて他の文字クラスを試すことができます。

おすすめ記事