免费注册 查看新帖 |

Chinaunix

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

批量改名总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-06-01 13:22 |只看该作者 |倒序浏览
承蒙CU各位大侠关照,现将自己搜集整理的文件批量改名方法总结如下,有原创也有引用,引用恕不一一注明。学习研究中经常碰到批量文件改名问题,所以下决心一劳永逸地解决了这个问题,不正之处请方家指正,欢迎评点、补充,谢谢!

A 加后缀

1.问题:同以目录下有海量以日期命名的文件,其中有的有后缀,有的以点结尾,如20020101.,20020102.,……,20020101.td,20020102.td……
要求: 把所有以点结尾的加上后缀.ts
我的方法:
  #!/bin/bash
  for files in `ls *.`
  do
        mv $files `echo "$filests" `
  done

2. 同上

     mv  $files ${files}ts

3. 同上

     mv  $files  `$files.ts|sed 's/\.//' `

4. file =>file.txt

       mv  $files  $files.txt

5. *.04  => *04.txt

    mv $files $(echo ${files}.txt|sed 's/\.//1')

    或者

   mv $files  `echo ${files}.txt|sed 's/\.//1' `

B 改后缀(.old => .new)

1. rename

     rename .old .new  *

2.
    mv $files ${file%.old}.new

3.
    mv $files `echo $files|tr .old .new`

4.
    mv $files `echo $files|sed 's/\.old/\.new/' `
   
C 去后缀 (*.dat => *)

1.  mv $files `echo $files |sed 's/\.dat//' `

2.  mv $files  `echo $files|tr .dat  (4空格)`

D 改前缀 (re* => un*)

1.  mv $files un${$files#re}

2.  mv $files `echo $files | tr re un`

论坛徽章:
0
2 [报告]
发表于 2005-06-01 13:24 |只看该作者

批量改名总结

Good

论坛徽章:
0
3 [报告]
发表于 2005-06-01 15:16 |只看该作者

批量改名总结

实用帖!

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-06-01 16:33 |只看该作者

批量改名总结

总结的不错呀~~~

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
5 [报告]
发表于 2005-06-01 16:57 |只看该作者

批量改名总结

mv $files `echo "$filests" `
用 mv ${files}{,ts}可否?

论坛徽章:
0
6 [报告]
发表于 2005-06-01 20:11 |只看该作者

批量改名总结

原帖由 "waker" 发表:
mv $files `echo "$filests" `
用 mv ${files}{,ts}可否?


不可,会得到:

     20020101.  => 20020101.{,ts}

可以这样

     mv $files  ${files}ts

结果

     20020101.  =>  20020101.ts

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-06-01 20:12 |只看该作者

批量改名总结

in linux, try man rename

论坛徽章:
0
8 [报告]
发表于 2006-07-12 15:43 |只看该作者
我的是HP-UX 为何很多都不可以用呀?

论坛徽章:
0
9 [报告]
发表于 2008-04-23 01:12 |只看该作者
好帖,一定要顶!

论坛徽章:
0
10 [报告]
发表于 2008-04-23 13:21 |只看该作者
  用循环是没有选择的选择,当然它也是最直观的,效率嘛就不知道哪个好些.
find+xargs就可以搞定一切了
#!/bin/bash

find . -type f -exec mv {} "{}ts" \;

按文件名打包文件
把abc目录下的所有文件打包成以原文件命名加后缀.tar文件
1. find abc -type f -exec tar -cvf "{}.tar" {} \;   
2. ls | xargs -I% tar -cvf %.tar %

[ 本帖最后由 angeljyt 于 2008-4-23 13:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP