当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 请详细解释一下这个,谢谢HELP
帖子发表于 : 2009-10-25 13:17 

注册: 2008-03-30 12:19
帖子: 359
送出感谢: 0 次
接收感谢: 0 次
我刚学shell,能详细解释一下吗?
ls -1|while read i; do j=`dirname $i`;mv "$i" ${j##*/}"$i";done

$i是代指ls -l 的某行吗?从第一行开始?
${j##*/}又指什么呢?
假如,我有文件01.xy, 02.xy, 03.xy……
用这个给改名改成psp01,psp02,psp03,……怎么改啊?
i要指定范围吗?如果指定范围,怎么指定啊?比如15个文件?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 请详细解释一下这个,谢谢HELP
帖子发表于 : 2009-10-25 15:25 

注册: 2008-11-01 21:42
帖子: 1028
地址: 树下板凳
送出感谢: 0 次
接收感谢: 1
ls -1(数字1)不是ls -l 看清楚了,ls -1只是吧ls的结果按行列出来,不同于ls -l

##的用法,真是没见过,c中有这玩意,shell中也有这玩意?特殊符号goole都不知道咋用
mv "$i" "${j}/XX$i" 不就可以了 ,为啥要用mv "$i" ${j##*/}"$i"?
还望xzap小朋友帮忙解答啊 ! 不用rename(习惯问题?) 用这个全路径mv,有啥好处?小朋友帮帮忙,说来听听!

lz的可以rename "s/([0-9]*)\.xy/psp$1/" *.xy

用while read i 的话 ,他只是把 读到的值传入 变量i中 ,i一般说来可以理解成字符串类型,shell本身是弱类型,不需要指定范围(我也不知道怎么指定)
mv的话可以用basename提取01.xy中.前面部分 ,自己搞吧


_________________
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 请详细解释一下这个,谢谢HELP
帖子发表于 : 2009-10-25 17:44 
头像

注册: 2009-05-20 19:32
帖子: 2462
送出感谢: 0 次
接收感谢: 2
最好用find -exec..


_________________
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
irc://irc.freenode.net/ubuntu-cn


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 3 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译