誰かが助けてくれることを願って、cygwinを使ってシステム上の数千のファイルから空白(アンダースコアで置き換えない)を削除する必要があります。 リネームやmvを使ってシェルからこれを行うことはできますか?Cygwinの下で多くのファイル名から空白を取り除く方法
fileone.mp3
filetwo.mp3
おかげ
:現在:すべてのファイルになる必要がある
ファイルtwo.mp3
one.mp3
ファイル
誰かが助けてくれることを願って、cygwinを使ってシステム上の数千のファイルから空白(アンダースコアで置き換えない)を削除する必要があります。 リネームやmvを使ってシェルからこれを行うことはできますか?Cygwinの下で多くのファイル名から空白を取り除く方法
fileone.mp3
filetwo.mp3
おかげ
:現在:すべてのファイルになる必要がある
ファイルtwo.mp3
one.mp3
ファイル
デフォルトのCygwinのシェルはbashのある、そう...
はあなたが変換と実行したいディレクトリの下に$ DIRを交換するには、次のコマンドラインを試してみて、そして出力チェック:あなたの場合は
find $DIR -type f -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done
を実行されるコマンドに満足していれば、mvの前にエコーを除去し、実際の名前変更を実行するために繰り返してください。これはファイルの名前を変更するだけで、ディレクトリは変更しないことに注意してください。ファイル名を変更するには、上記の回答に加えて
が、ここでは、ディレクトリ名を変更するコードは次のとおりです。
find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done
唯一の違いは、行の先頭から4番目の引数です。文字 "f"は "d"に変更され、それぞれファイルとディレクトリに対応します。
ありがとうございます! :) – GWC
私はいつも、UNIXシェルでどのように単純なものが混乱しているのか驚いています... – Joey