LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: iamone

如何列出指定时间段内的文件?

[复制链接]
发表于 2006-3-8 15:58:20 | 显示全部楼层
为什么不能工作呢?你可以把两个时间点当作参数传递给一个可执行脚本,如下:
$more 1.sh

  1. #!/bin/bash
  2. start=$1
  3. end=$2
  4. ls | awk '{if($0>=$start && $0<=$end && $0!="1.sh") print $0}' | xargs awk '{print $1}'|sort |uniq -c
复制代码

  1. ./1.sh 20040812 20060308
复制代码

不过要想完全达到你的要求还要改善。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 16:28:34 | 显示全部楼层
我也不知道为什么不能工作。

以上代码如果带if判断条件运行的话

没有任何输出,同时退出代码是0

以下是我的系统信息:
GNU bash, version 2.05b.0(1)-release-(i386-portbld-freebsd4.8)
回复 支持 反对

使用道具 举报

发表于 2006-3-8 16:35:13 | 显示全部楼层
这样应该差不多了,假如你的收信息目录为/home/dira,发信息目录为/home/dirb,
在/home下创建脚本1.sh,内容如下:

  1. #!/bin/bash
  2. start=$1
  3. end=$2
  4. awk 'BEGIN{
  5.      print "name        receive      send"
  6.      print "============================"
  7.     }'   < /dev/null
  8. address=`pwd`
  9. cd /home/dira
  10. ls | awk '{if($0>='$start' && $0<='$end' ) print $0}' | xargs awk '{print $1}'|sort |uniq -c >$address/file1
  11. cd /home/dirb
  12. ls | awk '{if($0>=$'start' && $0<='$end' ) print $0}' | xargs awk '{print $1}'|sort |uniq -c >$address/file2
  13. cd $address
  14. join -1 2 -2 2 file1 file2 | awk 'BEGIN{OFS="\t"}{print $1,$2,$3}'
复制代码

在/home下执行:

  1. ./1.sh  时间1  时间2
复制代码

但时间的格式要和文件名的格式相同。
回复 支持 反对

使用道具 举报

发表于 2006-3-8 16:39:13 | 显示全部楼层
这是我这边输出的结果:

  1. name    receive      send
  2. ============================
  3. name1     3       1
  4. name2     5       1
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 16:44:41 | 显示全部楼层
join 的问题在于无法把其中一个接受信息文件目录中存在,但是发送信息文件中不存在的人列出来。

如果用-a选项,那么输出结果如下:

name    receive      send
============================
name1     3       1
name2     5       1
2 name3
4 name4
回复 支持 反对

使用道具 举报

发表于 2006-3-8 17:08:47 | 显示全部楼层
可以在这做个判断,使用两次join,第一次使用选项-a1,第二次使用-a2,这样就可以分出哪些是receive,哪些是send了。使用-a1输出的结果中,如果只要两个域,则把第三个域赋0,使用-a2时也一样。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-8 17:22:08 | 显示全部楼层
嗯,非常谢谢你的热心,现在看来也就这样了

再次感谢关注此贴的达人

最后我用php写了一个复杂的脚本来搞定了

吁~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表