LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3895|回复: 11

请问如何将某一目录下以main开头的100个文件的文件名分别改为main1到main100

[复制链接]
发表于 2003-10-19 14:41:33 | 显示全部楼层 |阅读模式
rt!!!!!
ps:
如何查出某以文件中的所有含有main开头的100个字符串,并将其分别改为main1到main100。
 楼主| 发表于 2003-10-19 15:17:03 | 显示全部楼层

急呀,请斑竹帮忙看看!!!

3x!
发表于 2003-10-19 16:38:20 | 显示全部楼层
如果是改目录下的文件名,可以这样:
  1. n=1;ls|grep "^main"|while read i;do mv $i main$n;((n+=1));done
复制代码
如果对一个文件中的所有以main开头的字符串进行修改的话,:sorry,还没想出办法呢!
 楼主| 发表于 2003-10-19 17:00:47 | 显示全部楼层

谢谢斑竹!!

rt
发表于 2003-10-19 23:22:16 | 显示全部楼层
将一个文件中以main开头的字符串编号,我作的实验,望参考!
文件tmp,用100个以main的字符串开头的估计可以的,我这里就随便用了10个.
[/home/javalee/myshell]cat tmp
asdjkf dddf  maindfdf mainwere mainwerwer
sadf mainwerwee maddd mainaaa maincccc
maindf mainer dfer mainerr dddd abc
mainjjjj
  1. 脚本:
  2. [/home/javalee/myshell]cat main
  3. #!/bin/ksh
  4. n=1
  5. for i in $(cat -A tmp);do echo $i;done|while read j
  6. do
  7. if echo $j|grep main >/dev/null;then
  8. echo $j|sed s/main[a-z]*[a-z]/main${n}/g
  9. ((n+=1))
  10. else
  11. echo $j
  12. fi
  13. done|tr '\n' ' '|tr '$' '\n'
  14. 结果:
  15. [/home/javalee/myshell]ksh main
  16. asdjkf dddf main1 main2 main3
  17. sadf main4 maddd main5 main6
  18. main7 main8 dfer main9 dddd abc
  19. main10
  20. [/home/javalee/myshell]
复制代码
相信有更好的方法,遗憾的是我没想出来,这个先将就一下使吧~~
 楼主| 发表于 2003-10-24 10:53:31 | 显示全部楼层

不好意思斑竹:(,这几天kernel panic。

今天试了一下,脚本没有问题可以做到。
但还是想麻烦斑竹告诉偶((n+=1))和main${n}
两处的意思。
谢谢!!
 楼主| 发表于 2003-10-24 10:55:51 | 显示全部楼层

((n+=1))双括号怎么理解?、

rt!!
发表于 2003-10-24 11:24:59 | 显示全部楼层
这个得到当前目录下所有以main开头的常规文件,并按名称排序
[PHP]
ls -cl |grep '^-' |awk {'print $NF'} |grep '^main'
[/PHP]
发表于 2003-10-24 14:30:30 | 显示全部楼层
给当前目录下所有的以main开头的常规文件加编号

[PHP]
#!/bin/bash
list=`ls -cl |grep '^-' |awk {'print $NF'} |grep '^main'`
i=0
for j in $list
do
i=`expr $i + 1`
mv $j $j$i 2>/dev/null
done
[/PHP]
发表于 2003-10-24 15:58:04 | 显示全部楼层

回复: 不好意思斑竹:(,这几天kernel panic。

最初由 xiaoyan 发表
今天试了一下,脚本没有问题可以做到。
但还是想麻烦斑竹告诉偶((n+=1))和main${n}
两处的意思。
谢谢!!

((n+1)),(())是计算运算符,n 的初始值是1,那么每进行一次循环,(())都要计算n+1的值.
main${n},这时变量替换,每次循环后n的值,如:main1,main2...main100
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表