私はロシア語(そしていくつかのスロベニア語とギリシャ語)のファイル名をたくさん持っています。私の車でそれらを再生するには、曲のタイトルに西ヨーロッパの文字のみを使用する必要があります。
このファイルの名前変更を実行できるプログラムはありますか?
そうでない場合は、キリル文字とギリシャ文字のそれぞれに使用する文字のリストはありますか?
ありがとう-デイブ
私はロシア語(そしていくつかのスロベニア語とギリシャ語)のファイル名をたくさん持っています。私の車でそれらを再生するには、曲のタイトルに西ヨーロッパの文字のみを使用する必要があります。
このファイルの名前変更を実行できるプログラムはありますか?
そうでない場合は、キリル文字とギリシャ文字のそれぞれに使用する文字のリストはありますか?
ありがとう-デイブ
den4bによるReNamerと呼ばれる無料のプログラムを試してみてください。
この目的のために、音訳を実行するためuconv
のパッケージに基づいてシェルスクリプトを作成しました。icu-devtools
for f in "$@"
do
if [ ! -f "$f" ]; then
echo "$(basename $0) warn: this is not a regular file (skipped): $f" >&2
continue
fi
NEWFILENAME="$(basename "$f")"
NEWFILENAME="$( echo -n "$NEWFILENAME" | { transliterate || uconv -x 'Any-Latin;Latin-ASCII' || cat ; } )" # convert non-latin chars using my transliterate script OR uconv from the icu-devtools package
NEWFILENAME="$( echo -n "$NEWFILENAME" | iconv -f UTF-8 -t ascii//TRANSLIT//IGNORE )"
NEWFILENAME="$( echo -n "$NEWFILENAME" | tr -c '[A-Za-z0-9._\-]' '_' \
| tr '\[\]' '_' \
| sed -e 's/__*/_/g' \
| sed -e 's/_\././g' )"
# TODO: remove all dots except the last?
if [ -f "$(basename $f)/$NEWFILENAME" ]; then
echo "$(basename $0) warn: target filename already exists (skipped): $(basename $f)/$NEWFILENAME" >&2
continue
fi
if [ "$(basename $f)" != "$NEWFILENAME" ]; then
echo "\`$f' -> \`$NEWFILENAME'"
mv -i "$f" "$NEWFILENAME"
fi
done
これはロシア語の音訳表です。
Pythonがインストールされている場合は、次のスクリプトを使用できます。
それはかなり良い仕事をしているようです、そしてまたあなたはそれをあなたの必要に応じて変えることができます。それは私にとって箱から出してうまくいきませんでした、私はencode
次の2行(前に与えられた行番号)から呼び出しを削除しなければなりませんでした:
117 print fpath.encode('utf-8')
136 print 'Copying %s to %s' % (fpath.encode('utf-8'), new_fpath)
つまり、次のように変更します。
117 print fpath
136 print 'Copying %s to %s' % (fpath, new_fpath)
しかし、その後は正常に機能しました。たとえば、上記のスクリプトを、と呼ばれる同じフォルダー内のファイルに変更を加えて実行可能にすることを前提としtransliterate.py
てchmod u+x transliterate.py
います)。
$ mkdir a
$ touch a/сказать
$ ./transliterate.py a
a/сказать
Copying a/сказать to a/skazat'
お役に立てれば。
これは、ファイルの名前をlatinに変更し、古いものを削除する改良されたpythonスクリプトです。さらに、すべてのスペースをアンダースコア文字に置き換えます。
デビッド、
私はそれを自動的に実行するプログラムを知りません(以下の情報を与えられたとしても、ピザと引き換えにコンピューターオタクの友人にそれを実行してもらうことができると思います)。実際、プログラムは実際にはそうではありません。 Perlで書くのは難しい。
いずれにせよ、キリル文字、スロベニア文字、ギリシャ文字のそれぞれに使用する文字を選択するのに役立つ情報がいくつかあります。
http://en.wikipedia.org/wiki/Romanization_of_Russian
http://en.wikipedia.org/wiki/Slovene_alphabet
http://en.wikipedia.org/wiki/Romanization_of_Greek
それが少し役立つことを願っています!
また、サードパーティのパッケージに依存しない単純なシェルスクリプトsed
も作成しましたが、これはほとんどのLinuxディストリビューションにデフォルトでインストールされているはずです。
デフォルトではキリル文字のみを音訳しますが、上記のWikipediaの記事へのリンクを使用してギリシャ文字で簡単に拡張できます-http://en.wikipedia.org/wiki/Romanization_of_Greek