2010-11-22 12 views
0

誰かが助けてくれることを願って、cygwinを使ってシステム上の数千のファイルから空白(アンダースコアで置き換えない)を削除する必要があります。 リネームやmvを使ってシェルからこれを行うことはできますか?Cygwinの下で多くのファイル名から空白を取り除く方法

fileone.mp3

filetwo.mp3

おかげ

現在:すべてのファイルになる必要がある
ファイルtwo.mp3

one.mp3

ファイル

答えて

1

デフォルトのCygwinのシェルはbashのある、そう...

はあなたが変換と実行したいディレクトリの下に$ DIRを交換するには、次のコマンドラインを試してみて、そして出力チェック:あなたの場合は

find $DIR -type f -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done 

を実行されるコマンドに満足していれば、mvの前にエコーを除去し、実際の名前変更を実行するために繰り返してください。これはファイルの名前を変更するだけで、ディレクトリは変更しないことに注意してください。ファイル名を変更するには、上記の回答に加えて

+0

ありがとうございます! :) – GWC

+1

私はいつも、UNIXシェルでどのように単純なものが混乱しているのか驚いています... – Joey

0

が、ここでは、ディレクトリ名を変更するコードは次のとおりです。

find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done 

唯一の違いは、行の先頭から4番目の引数です。文字 "f"は "d"に変更され、それぞれファイルとディレクトリに対応します。

関連する問題