转载:http://blog.itpub.net/27042095/viewspace-1096974/
场景:目录下面有大量txt文件,文件名中有的含有空格。要求删除文件名中的空格:
命令:【
#ls *txt | awk '{printf "mv \t \"%s\"\t",$0;gsub(/[[:blank:]]/,"");print "\t"$0}' > deal4.list
#bash deal4.list > deal4.log 2>&1
】
处理以前:
ls -l | egrep '17453156354|17453156356|17453156357'
[oracle@localhost 201402261951.script]$ ls -l | egrep '17453156354|17453156356|17453156357'
-rw-r--r--. 1 oracle oinstall 146061 2月 26 19:24 delete_电工二队 _17453156356__20140226192317.txt
-rw-r--r--. 1 oracle oinstall 146061 2月 26 19:24 delete_电修队 _17453156357__20140226192401.txt
-rw-r--r--. 1 oracle oinstall 146061 2月 26 19:22 delete_运行二队 _17453156354__20140226192150.txt
-rw-r--r--. 1 oracle oinstall 377403 2月 28 09:49 insert_电工二队 _17453156356__20140226192317.txt
-rw-r--r--. 1 oracle oinstall 377403 2月 28 09:49 insert_电修队 _17453156357__20140226192401.txt
-rw-r--r--. 1 oracle oinstall 377403 2月 28 09:49 insert_运行二队 _17453156354__20140226192150.txt
运行命令处理以后:
[oracle@localhost 201402261951.script]$ ls -l | egrep '17453156354|17453156356|17453156357'
-rw-r--r--. 1 oracle oinstall 146061 2月 26 19:24 delete_电工二队_17453156356__20140226192317.txt
-rw-r--r--. 1 oracle oinstall 146061 2月 26 19:24 delete_电修队_17453156357__20140226192401.txt
-rw-r--r--. 1 oracle oinstall 146061 2月 26 19:22 delete_运行二队_17453156354__20140226192150.txt
-rw-r--r--. 1 oracle oinstall 377401 2月 26 19:24 insert_电工二队_17453156356__20140226192317.txt
-rw-r--r--. 1 oracle oinstall 377401 2月 26 19:24 insert_电修队_17453156357__20140226192401.txt
-rw-r--r--. 1 oracle oinstall 377401 2月 26 19:22 insert_运行二队_17453156354__20140226192150.txt
注释:运行bash deal4.list > deal4.log 2>&1的时候,会提示:“mv: "insert_注入六队_17453027336__20140226180837.txt" 与"insert_注入六队_17453027336__20140226180837.txt" 为同一文件”,这样的提示信息是无害的,可以忽略。因为有的文件名中没有空格,'mv a a'这种命令就会提示这种信息;'mv a b'不会提示任何信息。