タイトルが示すように、現在のディレクトリ内のすべてのファイルからスペースを削除するにはどうすればよいですか?
例
file name.mp3
になる必要がありますfilename.mp3
ノート:
- 私はどんな言語でも答えを受け入れます。
タイトルが示すように、現在のディレクトリ内のすべてのファイルからスペースを削除するにはどうすればよいですか?
例
file name.mp3
になる必要がありますfilename.mp3
ノート:
私はPythonの大ファンなので、これを行うためのPythonスクリプトを次に示します。
import os
for f in os.listdir("."):
r = f.replace(" ","")
if( r != f):
os.rename(f,r)
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));
}
}
}
for i in * ; do
if [ "$i" != ${i//[[:space:]]} ] ;
then
mv "$i" "${i//[[:space:]]}"
fi
done
${i//[[:space:]]}
文字列内のすべてのスペースを削除します。
あなたは言語にとらわれないので、ここにルビーのワンライナーがあります:
ruby -e 'Dir.foreach(".") {|f| f.count(" \t") > 0 and File.rename(f, f.delete(" \t"))}'
ls -1 | awk '/ /{a=$0;gsub(/ /,"");b="mv \""a"\" "$0;system(b);}'
これは、古いファイル名にスペースが含まれていて、新しいファイルがまだ存在しない場合にのみ、古いファイルの名前を変更します。
for old in *; do
new="${old//[[:space:]]}"
[[ $old = $new || -f $new ]] || mv "$old" "$new"
done