我想把目录下的*.c依次改为1.txt 2.txt 3.txt.....
自己写的b.sh:
#!/bin/bash
for file in ‘ls *.c'
do
mv $file $i.txt
i=$i+1
done
运行如下:
cook@linux-ir2d:~/downloads/ff> ./b.sh
mv: 目标".txt" 不是目录
反复改就是不行。请高人指点。
我试了3楼的方法。改了一下,用于改*.pdf。
cook@linux-ir2d:~/downloads/test/RH135> ls -1 *.pdf|awk '{S[$NF]} END {for(a in S) {++n;print "mv",a, n".pdf"}}'|sh
mv: 无法获取"Kickstart\324\332workstation\326\320ʵ\317\326.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"nfs_cifs.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取".pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\274ƻ\256\310\316\316\361.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\267\303\316\312\303\374\301\356\320\320.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\267\326\316\366\272ʹ洢\310\325־.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"Server.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"Anaconda\260\262װ\306\367.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\323û\247\271\334\300\355.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\304ں\313\311\375\274\266\272ʹ\253\313Ͳ\316\312\375.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"SELinux.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"ldap\315\370\302\347\325ʻ\247\271\334\300\355.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\311\372\263\311kickstart\275ű\276\316ļ\376.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"vim\263\243\323ü\274\307\311.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\316ļ\376\267\303\316ʿ\330\326\306ACL.pdf" 的文件状态(stat): 没有那个文件或目录
结果只改到29.pdf后面在就不行了。
感谢6楼、七楼。我参考你们的,又改了一下,达到效果了:
#!/bin/bash
i=1
for file in `ls *.c`
do
mv $file $i.txt
echo "rename $file to $i.txt"
let "i+=1"
done
七楼的方法也对,就是有点不 好懂,我慢慢分析,谢谢!
七楼请看吧:
cook@linux-ir2d:~/downloads/test/RH135> ls -1 *.pdf|awk '{S[$NF]} END {for(a in S) {++n;print "mv",a, n".pdf"}}'|sh
mv: 无法获取"Kickstart\324\332workstation\326\320ʵ\317\326.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"nfs_cifs.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取".pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\274ƻ\256\310\316\316\361.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\267\303\316\312\303\374\301\356\320\320.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\267\326\316\366\272ʹ洢\310\325־.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"Server.pdf" 的文件状态(stat): 没有那个文件或目录
mv: "12.pdf" 与"12.pdf" 为同一文件
mv: 无法获取"Anaconda\260\262װ\306\367.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\323û\247\271\334\300\355.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\304ں\313\311\375\274\266\272ʹ\253\313Ͳ\316\312\375.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"SELinux.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"ldap\315\370\302\347\325ʻ\247\271\334\300\355.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\311\372\263\311kickstart\275ű\276\316ļ\376.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"vim\263\243\323ü\274\307\311.pdf" 的文件状态(stat): 没有那个文件或目录
mv: 无法获取"\316ļ\376\267\303\316ʿ\330\326\306ACL.pdf" 的文件状态(stat): 没有那个文件或目录
cook@linux-ir2d:~/downloads/test/RH135> ls -l
总用量 10836
-rw-r--r-- 1 cook users 624132 7月 6 08:46 10.pdf
-rw-r--r-- 1 cook users 332998 7月 6 08:44 11.pdf
-rw-r--r-- 1 cook users 1146457 7月 6 08:44 12.pdf
-rw-r--r-- 1 cook users 352398 7月 6 08:44 13.pdf
-rw-r--r-- 1 cook users 354844 7月 6 08:45 17.pdf
-rw-r--r-- 1 cook users 369824 7月 6 08:44 19.pdf
-rw-r--r-- 1 cook users 518259 7月 6 08:44 1.pdf
-rw-r--r-- 1 cook users 500187 7月 6 08:44 23.pdf
-rw-r--r-- 1 cook users 371073 7月 6 08:45 3.pdf
-rw-r--r-- 1 cook users 324344 8月 17 16:02 RHCE_RHEL6_134 U1.3 Kickstart??workstation??ʵ??.pdf
-rw-r--r-- 1 cook users 295796 8月 17 16:02 RHCE_RHEL6_135 U1.0 Anaconda??װ??.pdf
-rw-r--r-- 1 cook users 425864 8月 17 16:01 RHCE_RHEL6_135 U10 ldap?????ʻ?????.pdf
-rw-r--r-- 1 cook users 467730 8月 17 16:01 RHCE_RHEL6_135 U11 ?ļ????ʿ???ACL.pdf
-rw-r--r-- 1 cook users 798359 8月 17 16:02 RHCE_RHEL6_135 U1.2 ????kickstart?ű??ļ?.pdf
-rw-r--r-- 1 cook users 712124 8月 17 16:01 RHCE_RHEL6_135 U12 SELinux.pdf
-rw-r--r-- 1 cook users 567530 8月 17 16:01 RHCE_RHEL6_135 U13 yum Server.pdf
-rw-r--r-- 1 cook users 699931 8月 17 16:00 RHCE_RHEL6_135 U15 ?????ʹ洢??־.pdf
-rw-r--r-- 1 cook users 351666 8月 17 16:00 RHCE_RHEL6_135 U16.2 ?ƻ?????.pdf
-rw-r--r-- 1 cook users 197197 8月 17 16:00 RHCE_RHEL6_135 U17.1 ?ں??????ʹ??Ͳ???.pdf
-rw-r--r-- 1 cook users 341360 8月 17 16:02 RHCE_RHEL6_135 U2 ??????????.pdf
-rw-r--r-- 1 cook users 177786 8月 17 16:01 RHCE_RHEL6_135 U3.3 vim???ü???.pdf
-rw-r--r-- 1 cook users 323566 8月 17 16:01 RHCE_RHEL6_135 U4.2 grep&cut&tee&tr .pdf
-rw-r--r-- 1 cook users 467447 8月 17 16:01 RHCE_RHEL6_135 U8 ???????繲?? nfs_cifs.pdf
-rw-r--r-- 1 cook users 327085 8月 17 16:01 RHCE_RHEL6_135 U9 ?û?????.pdf
cook@linux-ir2d:~/downloads/test/RH135>
求高人改正程序错误
-
- 帖子: 5
- 注册时间: 2012-11-01 10:46
- 系统: opensuse 12.2
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
-
- 帖子: 112
- 注册时间: 2009-11-02 10:29
Re: 求改名程序
ls -1 *.c|awk '{S[$NF]} END {for(a in S) {++n;print "mv",a, n".txt"}}'|sh
“ls -1 *.c”中是数字“1",不是"L",当前目录中不可存在"1.txt","2.txt"等等重复的文件名出现,不然会丢失文件!也就是不能在同一目录中执行二次以上的上述脚本,不然后果自负。。。。,实在不放心可以去除最后的"|sh",也就是执行
ls -1 *.c|awk '{S[$NF]} END {for(a in S) {++n;print "mv",a, n".txt"}}'
则只输出前段脚本的执行结果,并不实现真正的改名,确定无误后,才完整的执行脚本。
“ls -1 *.c”中是数字“1",不是"L",当前目录中不可存在"1.txt","2.txt"等等重复的文件名出现,不然会丢失文件!也就是不能在同一目录中执行二次以上的上述脚本,不然后果自负。。。。,实在不放心可以去除最后的"|sh",也就是执行
ls -1 *.c|awk '{S[$NF]} END {for(a in S) {++n;print "mv",a, n".txt"}}'
则只输出前段脚本的执行结果,并不实现真正的改名,确定无误后,才完整的执行脚本。
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 求改名程序
话说,不是有个perl写的rename吗?




◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 求高人改正程序错误
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关