免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
打印 上一主题 下一主题

急急! 如何用shell读取unix下文件的创建时间并比较! [复制链接]

论坛徽章:
0
11 [报告]
发表于 2005-04-25 21:54 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

原帖由 "小菜一碟 味道鲜美" 发表:
各位 我怎么觉得你们说的 跟我问的不大一样呢?
我用ls -l命令出来的文件日期格式是 Apr 22 09:29 1.txt
格式的啊。。。
还有就是 比如说这个1。txt里面有个字段是表示时间的, 格式是 20050423
那我就需要比较A..........



man ls

ls -l --time-style=long-iso

^v^$ ls -l
total 8
-rw-r--r--  1 gaochao gaochao 10 2005-04-25 21:33 a.txt
-rw-r--r--  1 gaochao gaochao 10 2005-04-25 21:39 b.txt
^v^$ cat a.txt
20050425

^v^$ cat b.txt
20050525

^v^$ for i in *.txt; do [ $(ls -l --time-style=long-iso $i|awk '{print $6}'|sed 's/-//g') -eq $(cat $i|head -1) ] && echo "$i is ok"; done
a.txt is ok
^v^$

论坛徽章:
0
12 [报告]
发表于 2005-04-26 09:33 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

大虾, 我看不太明白啊。。。 我的意思是这样的:
比如一个1. txt的内容是:
32532543 20050428142525 32436 654657
32145366 20050429092315  321435 423242
....................

其中20050428142525表示2005年4月28日14点25分25秒,20050429092315则表示2005年4月29日9点23分15秒........
而这个文件的创建时间是:
$ls -l
..........  Apr 28 15:46 1.txt
然后我希望能把里面“20050428142525”和“20050429092315”表示的4月28日14点 25分, 4月29日9点23分和这个文件的创建时间Apr 28 15点46分相比较!如果相差超过24小时, 则报警!

大虾救救我啊。。。。

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
13 [报告]
发表于 2005-04-26 11:45 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

几点疑问请楼主澄清:
1. 需要处理的文件是一个还是多个?
2. 1.txt 只有一个创建时间,而它的内容有很多行,是任意一行的时间和创建时间相差超过24小时就报警,还是有其它要求?

论坛徽章:
0
14 [报告]
发表于 2005-04-26 14:03 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

引用:
几点疑问请楼主澄清:
1. 需要处理的文件是一个还是多个?
2. 1.txt 只有一个创建时间,而它的内容有很多行,是任意一行的时间和创建时间相差超过24小时就报警,还是有其它要求?

回复楼上的高手:
1。 处理的文件有多个。
2。 每个文件里面的任意一行取到的时间和创建时间差查过24小时就报警!(是文件内的时间比创建时间少24小时就报警)

谢谢斑竹!

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
15 [报告]
发表于 2005-04-26 22:37 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

  1. ls -l --time-style=+"%Y-%m-%d-%H-%M-%S"|awk '{f=$7;t=strftime("%Y%m%d%H%M%S",mktime(gensub("-"," ","g",$6))-86400);while(getline<f)if($2<t){print f;break;}close(f)}'
复制代码


还没用数据测试,楼主试试

论坛徽章:
0
16 [报告]
发表于 2005-04-27 09:32 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

-----
代码:
ls -l --time-style=+"%Y-%m-%d-%H-%M-%S"|awk '{f=$7;t=strftime("%Y%m%d%H%M%S",mktime(gensub("-"," ","g",$6))-86400);while(getline<f)if($2<t){print f;break;}close(f)}'
还没用数据测试,搂主试试
------

这个代码是用在一个里面只有*.txtd的目录下吗? 我新建了一个目录zjj,下面有一个文件a.txt:
$pwd
/backup/zjj
$more a.txt
32532543 20050428142525 32436 654657
32145366 20050429092315  321435 423242
a.txt: END
然后用了你给的代码:
$ls -l --time-style=+"%Y-%m-%d-%H-%M-%S"|awk '{f=$7;t=strftime("%Y%m%d%H%M%S",mktime(gensub("-"," ","g",$6))-86400);while(getline<f)if($2<t){print f;break;}close(f)}'
显示:
ls: Not a recognized flag: -
ls: Not a recognized flag: -
ls: Not a recognized flag: y
ls: Not a recognized flag: =
ls: Not a recognized flag: +
ls: Not a recognized flag: %
ls: Not a recognized flag: Y
ls: Not a recognized flag: -
ls: Not a recognized flag: %
ls: Not a recognized flag: -
ls: Not a recognized flag: %
ls: Not a recognized flag: -
ls: Not a recognized flag: %
ls: Not a recognized flag: -
ls: Not a recognized flag: %
ls: Not a recognized flag: M
ls: Not a recognized flag: -
ls: Not a recognized flag: %
ls: Not a recognized flag: S
Usage: ls [-1ACFLNRabcdefgilmnopqrstuxE] [File...]

不懂什么意思啊。
大虾 你给的代码是怎么用的呢? 而且我的目录下本来不仅仅有需要执行的文件 还有无用文件, 所以执行的时候还应该让代码只对ABC* 开头的文件进行时间比较哎!

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
17 [报告]
发表于 2005-04-27 09:53 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

你的ls版本是多少?

论坛徽章:
0
18 [报告]
发表于 2005-04-27 09:59 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

不懂。。。。怎么看版本啊?
我打算用一个crontab 来定时执行shell程序, 那这个shell是不是一定要带路径参数啊?

论坛徽章:
7
荣誉版主
日期:2011-11-23 16:44:17子鼠
日期:2014-07-24 15:38:07狮子座
日期:2014-07-24 11:00:54巨蟹座
日期:2014-07-21 19:03:10双子座
日期:2014-05-22 12:00:09卯兔
日期:2014-05-08 19:43:17卯兔
日期:2014-08-22 13:39:09
19 [报告]
发表于 2005-04-27 15:42 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

偶放弃,帮不了了。

论坛徽章:
0
20 [报告]
发表于 2005-04-29 18:10 |只看该作者

急急! 如何用shell读取unix下文件的创建时间并比较!

用 stat 得到文件的时间更标准。
用ls容易出现各种问题~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP