5

タイトルが示すように、現在のディレクトリ内のすべてのファイルからスペースを削除するにはどうすればよいですか?

file name.mp3になる必要がありますfilename.mp3

ノート:

  • 私はどんな言語でも答えを受け入れます。
4

6 に答える 6

14

私はPythonの大ファンなので、これを行うためのPythonスクリプトを次に示します。

import os
for f in os.listdir("."):
    r = f.replace(" ","")
    if( r != f):
        os.rename(f,r)
于 2012-09-07T13:49:59.270 に答える
10

shで

for file in *' '*; do [ -f "$file" ] && mv "$file" "`echo $file|tr -d '[:space:]'`"; done

perl 5.14で(古いバージョンに置き換えy/ //drてください)do{($x=$_)=~y/ //d;$x}

# Linux/Unix
perl -e 'rename$_,y/ //drfor<"* *">'
# Windows
perl -e "rename$_,y/ //drfor<'* *'>"

Javaで

import java.io.File;

public class M {

    public static void main(String[] args) {
        String o,n;
        for (File old : new File(".").listFiles()) {
            o=old.getName();
            if (!o.contains(" ")) continue;
            n=o.replaceAll(" ", "");
            old.renameTo(new File(n));
        }
    }
}
于 2012-09-07T09:33:35.473 に答える
2
for i in * ; do 
  if [ "$i" != ${i//[[:space:]]} ] ; 
  then
    mv "$i" "${i//[[:space:]]}"
  fi
done

${i//[[:space:]]}文字列内のすべてのスペースを削除します。

于 2012-09-07T08:17:13.863 に答える
2

あなたは言語にとらわれないので、ここにルビーのワンライナーがあります:

ruby -e 'Dir.foreach(".") {|f| f.count(" \t") > 0 and File.rename(f, f.delete(" \t"))}'
于 2012-09-07T14:26:07.017 に答える
1
ls -1 | awk '/ /{a=$0;gsub(/ /,"");b="mv \""a"\" "$0;system(b);}'
于 2012-09-07T08:50:08.130 に答える
1

これは、古いファイル名にスペースが含まれていて、新しいファイルがまだ存在しない場合にのみ、古いファイルの名前を変更します。

for old in *; do
    new="${old//[[:space:]]}"
    [[ $old = $new || -f $new ]] || mv "$old" "$new"
done
于 2012-09-07T11:59:59.000 に答える