免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9750 | 回复: 17
打印 上一主题 下一主题

请教批量修改带空格的文件名 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-26 23:59 |只看该作者 |倒序浏览
在一个目录下有很多带空格的文件,如"aa bb","a b c"等文件,如何使用命令将文件改名,将空格去除或将空格改成其它的字符如“_”,不要使用脚本,只使用命令和管道符配合。

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-04-15 06:20:0015-16赛季CBA联赛之福建
日期:2016-08-08 13:37:03
2 [报告]
发表于 2011-04-27 00:53 |只看该作者
csh的命令

foreach f (*)
  set g=`echo $f | sed 's# ##g'`
  if ("$f" != "$g") mv $f $g
end

论坛徽章:
0
3 [报告]
发表于 2011-04-27 14:59 |只看该作者
看来还是有点难度,怎么没人回呢?

论坛徽章:
0
4 [报告]
发表于 2011-04-27 15:03 |只看该作者
ls |sed -e 's/.\+/\"&\"/ p;s/ \+//g'|xargs -n 2 mv

论坛徽章:
0
5 [报告]
发表于 2011-04-27 16:17 |只看该作者
回复 4# daidai8910


    貌似不行呀,做过测试吗?呵呵

论坛徽章:
0
6 [报告]
发表于 2011-04-27 16:21 |只看该作者
查找了一些资料自己总结了一下,这个应该不算脚本吧,呵呵
ls | grep " " | while read OLD;do NEW=`echo $OLD | sed 's/\ //g'`; mv "$OLD" $NEW;done或
ls | grep " " | while read OLD;do NEW=`echo $OLD  | tr ' ' '_'`; mv "$OLD " $NEW;done

论坛徽章:
0
7 [报告]
发表于 2011-04-27 16:26 |只看该作者
ls |sed -e 's/.\+/\"&\"/ p;s/ \+//g'|xargs -n 2 mv
daidai8910 发表于 2011-04-27 15:03



    应该做下修改ls | grep " " | sed -e 's/.\+/\"&\"/ p;s/ \+//g'|xargs -n 2 mv

论坛徽章:
0
8 [报告]
发表于 2011-04-27 17:07 |只看该作者
只有那些文件名中没有空格的会给一个文件identity的信息,我没加上这个主要是考虑到不知道你针对这些信息如何处理,或许你还想顺便统计下没有空格文件名的个数信息等等。自己发挥嘛。

论坛徽章:
0
9 [报告]
发表于 2011-04-27 18:40 |只看该作者
以a b为例
mv "a b" `ls "a b"|awk '{i=1;while(i<NF){printf $i"_";i++};{printf $NF}}'

论坛徽章:
0
10 [报告]
发表于 2011-04-27 18:43 |只看该作者
最后少个`,sorry
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP