mv遇到空格和小括号文件引发的问题
2016-08-21 12:38
387 查看
最近整理一些文件遇到一件很纠心的事情,用了很多的方法,但均未成功将文件名中包含空格和括号的文件整理成功。问题如下:
在所要整理的文件夹中包含多个子文件夹而每个文件夹下面都有恼人的文件包含空格和小括号:
比如在当前Documents目录下有大致500多份文件其中百分之80是以abc (0).log或abcdef ( 2 ).log,同时子目录也有可能是是/aa bb/或/aaa bbb ccc/这类的,通过shell脚本来实现时,一旦到了含空格文件名的时候全部卡壳或是执行失败,用过sed, awk, rename可是到了mv $file $dest_fn的时候要么文件全部被mv到 /dev/null 或被重命名为(null).log这里用(null)表示文件名全部给删除了,要么就是文件是什么样子还是什么样子。代码块如下:
复制内容到剪贴板
代码:
这里我把$path用当前文件夹所在位置代替了。
原先用过
复制内容到剪贴板
代码:
提示line1 mv >>>错误
然后我把最后的$2删除,问题也同样是提示line1 mv >>>错误
通过不断的完善,终于完美解决这个问题。以下是代码块:
复制内容到剪贴板
代码:
在所要整理的文件夹中包含多个子文件夹而每个文件夹下面都有恼人的文件包含空格和小括号:
比如在当前Documents目录下有大致500多份文件其中百分之80是以abc (0).log或abcdef ( 2 ).log,同时子目录也有可能是是/aa bb/或/aaa bbb ccc/这类的,通过shell脚本来实现时,一旦到了含空格文件名的时候全部卡壳或是执行失败,用过sed, awk, rename可是到了mv $file $dest_fn的时候要么文件全部被mv到 /dev/null 或被重命名为(null).log这里用(null)表示文件名全部给删除了,要么就是文件是什么样子还是什么样子。代码块如下:
复制内容到剪贴板
代码:
#!/bin/bash# This is a test sample script for i in `ls -iR|grep -E "[A-Za-z0-9]*.log|awk '{print $1}'` do name=`find . -inum $i"|awk -F '/' '{print $NF}` stu_fn=$(echo $name|tr -d ' ', '\(', '\)') mv "./$name" "./$stu_fn" done
这里我把$path用当前文件夹所在位置代替了。
原先用过
复制内容到剪贴板
代码:
ls -iR|awk '{gsub(/[\(\)]/,"",$3);print "find . -inum " ,$1, "-exec mv {}",$2,$3,"\;"}'
提示line1 mv >>>错误
然后我把最后的$2删除,问题也同样是提示line1 mv >>>错误
通过不断的完善,终于完美解决这个问题。以下是代码块:
复制内容到剪贴板
代码:
#!/bin/sh # sample.sh # find . -name "* (*)*"|while read name;do s_fn=$(echo $name|tr -d ' ','\(','\)'); mv "$name" $s_fn; done
相关文章推荐
- 包含空格的项目的文件/路径部分需要用括号 问题解决方案
- 未解决问题之一—— fatal error C1075: 与左侧的 大括号“{”(位于“”)匹配之前遇到文件结束
- 解决IIS出现包含空格的项目的文件/路径部分需要用括号括起来的问题
- 遇到一个因socket未关闭引发的文件句柄用完问题
- linux下安装mysql时候遇到mysql.sock文件问题
- 关于我使用spring mvc框架做文件上传时遇到的问题
- 删除Web.config、Global.asax等文件时遇到的问题
- 使用主题文件(包含CSS文件)时遇到的问题
- ASP.Net中下载文件遇到了一个问题--对话框弹出两次
- [C#]不用IIS直接执行aspx文件中遇到的问题
- 上传wmv文件遇到的问题
- 使用Oracle中fileopen命令加载文件时遇到的怪问题
- [C#]不用IIS直接执行aspx文件中遇到的问题
- linux下用gcc编译c程序时遇到的问题: error: stdio.h: 没有那个文件或目录
- 两个对话框类相互包含头文件遇到的问题
- 实战:遇到HTM的文件图标丢失的问题
- java读取含日文字符的csv文件,并存取到access数据库中遇到的问题
- 制作Web安装文件时遇到的几个小问题及其解决思路
- 使用Ajax.net遇到的问题-使用会话时提示错误"只有在配置文件或 Page 指令中将启用会话状态设置为真时,才可以使用会话状态
- [C#]不用IIS直接执行aspx文件中遇到的问题