当前时区 GMT+8, 现在时间是 2008-8-22 09:28 游客: 注册 登录 仅登录论坛 | 搜索 帮助


标题: 如何才能用shell程序找出符合这样一个条件的文件的文件名?
Kuleshov
新手上路
Rank: 1


UID 229527
精华 0
积分 5
帖子 2
阅读权限 10
注册 2006-11-1
状态 离线
发表于 2006-11-1 20:11  资料  短消息  加为好友 
如何才能用shell程序找出符合这样一个条件的文件的文件名?

文件的格式是YYYY-MM-DD.zip的日期格式
我现在要在特定目录下,查找一个文件,这个文件的文件名中的日期要大于某一个日期,这“某一个日期”存在一个变量里,但是这个符合这个大于条件的文件可能有很多个,我要找最小的一个,即最近的一个。
请问应该怎么获取这个文件的文件名?我看了看find命令的介绍,好像不行。
谢谢,请赐教!

顶部
waya_waya
注册会员
Rank: 2


UID 98270
精华 0
积分 143
帖子 57
阅读权限 20
注册 2004-2-25
来自 China.gif
状态 离线
发表于 2006-11-9 22:18  资料  短消息  加为好友 
searchname="yyyy-mm-dd";
touch $searchname.zipb;
ls *.zip* | sort >faderesult.txt
fadeline=`sed -n "/$searchname.zipb/=" faderesult.txt`
realline=`expr $fadeline - 1`

sed -n "$realline"p faderesult.txt

rm faderesult.txt
rm $searchname.zipb

你试试看吧,我水平也不行,呵呵,感觉好麻烦,不知道有没有高手指点,
我估计应该有内嵌的函数可以比较简洁的解决。

顶部
毛毛~
注册会员
Rank: 2


UID 50338
精华 0
积分 245
帖子 98
阅读权限 20
注册 2003-7-13
来自 China
状态 离线
发表于 2006-11-11 10:19  资料  短消息  加为好友  QQ
简单。你直接输入FIND语句,让搜索符合你日期条件的所有你安排的格式的文件!
再排序就好了啊!

顶部
Kuleshov
新手上路
Rank: 1


UID 229527
精华 0
积分 5
帖子 2
阅读权限 10
注册 2006-11-1
状态 离线
发表于 2006-11-13 06:24  资料  短消息  加为好友 
嗯,谢谢waya_waya
我shell水平不行,连看带猜得看了,有些命令还不太明白,我会找点书再来研究一下。

to 毛毛~
请问你说的这种办法需要建立临时文件吗?语法大概是怎么样的?能说说看吗?

顶部
 


Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
清除 Cookies - 联系我们 - 中国Linux公社 - WAP