LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 回复
精华主题  
主题工具
旧 03-10-19, 14:41 第 1 帖
xiaoyan
 
xiaoyan 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 15
  精华: 1
 

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


rt!!!!!
ps:
如何查出某以文件中的所有含有main开头的100个字符串,并将其分别改为main1到main100。
  xiaoyan 当前离线   回复时引用此帖
旧 03-10-19, 15:17 第 2 帖
xiaoyan
 
xiaoyan 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 15
  精华: 1
 

标题: 急呀,请斑竹帮忙看看!!!


3x!
  xiaoyan 当前离线   回复时引用此帖
旧 03-10-19, 16:38 第 3 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

如果是改目录下的文件名,可以这样:
代码:
n=1;ls|grep "^main"|while read i;do mv $i main$n;((n+=1));done
如果对一个文件中的所有以main开头的字符串进行修改的话,,还没想出办法呢! :(

此帖于 03-10-19 17:02 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-10-19, 17:00 第 4 帖
xiaoyan
 
xiaoyan 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 15
  精华: 1
 

标题: 谢谢斑竹!!


rt
  xiaoyan 当前离线   回复时引用此帖
旧 03-10-19, 23:22 第 5 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

将一个文件中以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
代码:
脚本: [/home/javalee/myshell]cat main #!/bin/ksh n=1 for i in $(cat -A tmp);do echo $i;done|while read j do if echo $j|grep main >/dev/null;then echo $j|sed s/main[a-z]*[a-z]/main${n}/g ((n+=1)) else echo $j fi done|tr '\n' ' '|tr '$' '\n' 结果: [/home/javalee/myshell]ksh main asdjkf dddf main1 main2 main3 sadf main4 maddd main5 main6 main7 main8 dfer main9 dddd abc main10 [/home/javalee/myshell]
相信有更好的方法,遗憾的是我没想出来,这个先将就一下使吧~~ :(

此帖于 03-10-19 23:29 被 KornLee 编辑.
  KornLee 当前离线   回复时引用此帖
旧 03-10-24, 10:53 第 6 帖
xiaoyan
 
xiaoyan 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 15
  精华: 1
 

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


今天试了一下,脚本没有问题可以做到。
但还是想麻烦斑竹告诉偶((n+=1))和main${n}
两处的意思。
谢谢!!
  xiaoyan 当前离线   回复时引用此帖
旧 03-10-24, 10:55 第 7 帖
xiaoyan
 
xiaoyan 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 15
  精华: 1
 

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


rt!!
  xiaoyan 当前离线   回复时引用此帖
旧 03-10-24, 11:24 第 8 帖
cclnw
 
 
 
注册会员  
  注册日期: May 2002
  帖子: 605
  精华: 2
 

这个得到当前目录下所有以main开头的常规文件,并按名称排序
PHP 代码:
ls -cl |grep '^-' |awk {'print $NF'} |grep '^main' 

此帖于 03-10-24 11:34 被 cclnw 编辑.
  cclnw 当前离线   回复时引用此帖
旧 03-10-24, 14:30 第 9 帖
cclnw
 
 
 
注册会员  
  注册日期: May 2002
  帖子: 605
  精华: 2
 

给当前目录下所有的以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 

此帖于 03-10-25 10:30 被 cclnw 编辑.
  cclnw 当前离线   回复时引用此帖
旧 03-10-24, 15:58 第 10 帖
KornLee
 
 
 
★☆★☆★☆★  
  注册日期: Nov 2002
  我的住址: LinuxWorld
  帖子: 6,960
  精华: 61
 

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


引用:
最初由 xiaoyan 发表
今天试了一下,脚本没有问题可以做到。
但还是想麻烦斑竹告诉偶((n+=1))和main${n}
两处的意思。
谢谢!!
((n+1)),(())是计算运算符,n 的初始值是1,那么每进行一次循环,(())都要计算n+1的值.
main${n},这时变量替换,每次循环后n的值,如:main1,main2...main100
  KornLee 当前离线   回复时引用此帖
旧 03-10-24, 17:29 第 11 帖
xiaoyan
 
xiaoyan 的头像
 
 
注册会员  
  注册日期: Apr 2003
  帖子: 15
  精华: 1
 

标题: thanks a lot javalee & cclnw


rt!
  xiaoyan 当前离线   回复时引用此帖
旧 03-10-25, 10:20 第 12 帖
cclnw
 
 
 
注册会员  
  注册日期: May 2002
  帖子: 605
  精华: 2
 

第二个
PHP 代码:
#!/bin/bash

list=`cat $1`
c=0
r
=0

while grep R$r $>/dev/null 2>/dev/null
do
r=`expr $r + 1`
done

while j in $list
do
while echo 
$j|grep main >/dev/null 2>/dev/null
do
c=`expr $c + 1`
j=`echo $j|sed "s/main/R$r$c/"`
done
echo $j>>tmp.out
done

sed 
"s/R$r/main/g" tmp.out 
能够解决问题,但代码比较多,效率不高,看看大家还有没有更好的办法。
使用方法:
$command inputfile
  cclnw 当前离线   回复时引用此帖
发表新主题 回复


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 13:19


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org