免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1882 | 回复: 8
打印 上一主题 下一主题

请给个思路 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-04 15:58 |只看该作者 |倒序浏览
是这样的,每天自动生成一个文件,当要提取文件时就输入某天的日期,就可以下载某天以前的数据了

打个比方

文件夹里有20071201,20071202,20071203,20071204这四个文件

现在我输入了20071203,就能吧20071201和20071202的数据下载下来



之前我是这样做的

ls -l  ../download_num/ |awk '{if($9!="") print $9}'  | sort -n |

然后想要取20071203之前的两个文件 要如何实现呢?

论坛徽章:
0
2 [报告]
发表于 2007-12-04 16:06 |只看该作者
你看下 这个是否可以
date=`date -d "$num day ago " +%Y%m%d`

我也只是根据日期来获取文件,具体你写个脚本看看~

论坛徽章:
0
3 [报告]
发表于 2007-12-04 16:11 |只看该作者
r='20071203'
ls -l  ../download_num/ |awk '{if($9!="") print $9}'  | sort -n |sed -n "1,/$r/p"

论坛徽章:
0
4 [报告]
发表于 2007-12-04 16:15 |只看该作者
楼上的高人 能解释一下后面的吗?  "1,/$r/p"

论坛徽章:
0
5 [报告]
发表于 2007-12-04 16:19 |只看该作者
3楼写的这个,我这里测试不行。。。

我是这样的:
cc.sh
#!/bin/bash
num=$1
ls -l  . | awk '{if($9!="") print $9}'  | sort -n |sed -n "1,/$num/p"

然后在控制台上输入
# bash cc.sh 20071203
结果显示出来的是
11:32
11:32
15:12
16:01
16:08
16:08
16:08
16:08
16:08
16:16
16:19

。。。迷茫

论坛徽章:
0
6 [报告]
发表于 2007-12-04 16:23 |只看该作者
如果  download_num/  目录下全部是20071204 这样格式的文件,你可以尝试这么做

cd download_num/  
ls * | awk -v sd=20071203 '$1<sd'
这样就能够列举出所有20071203之前的文件了,每个一行

[ 本帖最后由 springwind426 于 2007-12-4 19:50 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-12-04 16:25 |只看该作者
原帖由 tsar7117 于 2007-12-4 16:15 发表
楼上的高人 能解释一下后面的吗?  "1,/$r/p"


打印从第一行到有$r存在的行

论坛徽章:
0
8 [报告]
发表于 2007-12-04 16:26 |只看该作者
六楼的太强了

[ 本帖最后由 tsar7117 于 2007-12-4 16:27 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-12-04 16:51 |只看该作者
ls -lt|awk '/-rw-r/{if ($9<date)print $9}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP