如何批量重命名x.txt为00x.txt

sh/bash/dash/ksh/zsh等Shell脚本
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 如何批量重命名x.txt为00x.txt

#16

帖子 aerofox » 2010-06-29 12:53

代码: 全选

#!/bin/bash
shopt -s extglob
for f in ??(?).txt; do
    b=${f%.txt}
    n="00$b"
    n="${n:0-3}"    # 在原来的 basename ($b) 前加两个 0,再取末尾三个字符,作为新的 basename
    mv "$f" "$n.txt"
done
上次由 aerofox 在 2010-06-29 19:44,总共编辑 1 次。
头像
trigger
帖子: 1604
注册时间: 2006-10-25 18:08

Re: 如何批量重命名x.txt为00x.txt

#17

帖子 trigger » 2010-06-29 14:01

楼上威武
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
头像
HuaChong
帖子: 493
注册时间: 2006-09-12 17:10

Re: 如何批量重命名x.txt为00x.txt

#18

帖子 HuaChong » 2010-07-01 9:26

Jarson 写了:

代码: 全选

rename 's/^(\d\d\.txt)$/0$1/' *.txt
赞同这个
头像
nmsfan
帖子: 18958
注册时间: 2009-10-16 22:46
来自: finland

Re: 如何批量重命名x.txt为00x.txt

#19

帖子 nmsfan » 2010-07-01 11:09

不懂代码的围观代码帝~~~
>>>>推Ubuntu 桌面培训~~<<<<
>>>>想加入/了解gimp汉化吗,点我吧~<<<<
——————————————————————
不推荐wubi,也不推荐你给别人推荐wubi…………
随心而为的感觉真好……
强推mayhem!!
强推ensiferum
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 如何批量重命名x.txt为00x.txt

#20

帖子 aerofox » 2010-07-01 12:45

代码: 全选

rename 's/(\d+)/sprintf("%03d",$1)/e' *.txt
头像
ChenFengyuan
帖子: 770
注册时间: 2008-03-23 0:39

Re: 如何批量重命名x.txt为00x.txt

#21

帖子 ChenFengyuan » 2010-07-01 13:50

rename 是无敌的
rename -v -e '$_=sprintf "%03d",$_' *

犀利的楼上,我这个错了,但是我不会删帖。。。。 :em06 :em06 :em06
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 如何批量重命名x.txt为00x.txt

#22

帖子 Jarson » 2010-07-01 17:21

aerofox 写了:

代码: 全选

rename 's/(\d+)/sprintf("%03d",$1)/e' *.txt
强悍,能不能解析一下最后的那个e是什么意思?
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何批量重命名x.txt为00x.txt

#23

帖子 eexpress » 2010-07-01 17:59

e 替换字符串作为表达式
没事,多看perl手册
● 鸣学
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 如何批量重命名x.txt为00x.txt

#24

帖子 Jarson » 2010-07-02 0:00

eexpress 写了:e 替换字符串作为表达式
没事,多看perl手册
谢谢e婶 :em63
cinvent
帖子: 4
注册时间: 2010-06-04 21:53

Re: 如何批量重命名x.txt为00x.txt

#25

帖子 cinvent » 2010-07-10 12:44

aerofox 写了:

代码: 全选

rename 's/(\d+)/sprintf("%03d",$1)/e' *.txt
这个代码果然强悍的很呀, :em05
头像
uboomla
帖子: 24
注册时间: 2009-04-25 20:28
联系:

Re: 如何批量重命名x.txt为00x.txt

#26

帖子 uboomla » 2010-07-10 23:56

如果用purrr图形化工具的话,直接重命名[c,,,3].[e],解决问题
看看这里http://www.zhaole.info/?p=672,希望能对你有帮助。

需要注意的是,像你这种情况,如果使用purrr,添加被重命名文件时,在添加文件对话框中,先对文件名排序,然后全选加入。
瘟都死?无奔头啦!-http://zhaole.info
头像
bjsm
帖子: 2324
注册时间: 2007-05-13 16:45
来自: 阿拉斯加群岛其中的一个岛上一片原始森林里其中的一颗树上
联系:

Re: 如何批量重命名x.txt为00x.txt

#27

帖子 bjsm » 2010-07-11 0:08

谁的代码短,谁就是代码帝,这里不考虑CPU占用,内存泄漏等灵异问题,谁短谁强,诸位代码师比比,E神也露一手,不要老是在旁边坏笑。
http://shop33976086.taobao.com/
AMD 速龙 x4 630
GIGABYTE MA785GT-UD3H
金士顿 骇客神条 DDR3 1666 2G (这个内存我最肉疼,390元。)
VIEWSONIC 2433
ssh -qTfnN -D 7070
回复