查找某一时间段内的文件内容并输出到文件

南城IT小工 2013-11-04 04:38:03
现有目录下大量文件,文件格式如下:
[2013-11-4 16:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
如何用脚本找出每个文件中16:00:00-18:00:00之间的文件内容并输出到新文件?
...全文
303 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ceclinux 2013-11-05
  • 打赏
  • 举报
回复
引用 4 楼 magi1201 的回复:
[quote=引用 3 楼 Cecil_911 的回复:] 我看不出哪里不准确了,漏了什么
hadoop3@linux-240:~> cat time.txt
[2013-11-4 16:00:00]aa
[2013-11-4 20:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
[2013-11-4 19:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
hadoop3@linux-240:~> sed -n '/16:00:00/,/18:00:00/p' time.txt
[2013-11-4 16:00:00]aa
[2013-11-4 20:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
如果数据不规整的话,那截取的值就不准确了[/quote] 这。。不符合科学道理啊,时间都会乱序
南城IT小工 2013-11-05
  • 打赏
  • 举报
回复
请问用awk如何处理呢?不规整数据的处理问题我也发现了,我的一个思路是:如果非要用sed,需要事先对处理的数据排序。
ljc007 2013-11-05
  • 打赏
  • 举报
回复
引用 6 楼 magi1201 的回复:
我想跟着探讨下,如果出现这种格式的数据,该如何处理,仅从技术角度。当然,实际应用中可能很少产生上述格式的数据。
这种情况需要逐行读取然后判断时间,用awk比较方便。 另外常见的做法就是先排序再处理。 但是遇到非常巨大的文件,处理速度会很慢。
姜小白- 2013-11-05
  • 打赏
  • 举报
回复
引用 5 楼 ljc007 的回复:
在实际工作中,哪个软件会产生这样的日志?
我想跟着探讨下,如果出现这种格式的数据,该如何处理,仅从技术角度。当然,实际应用中可能很少产生上述格式的数据。
ljc007 2013-11-05
  • 打赏
  • 举报
回复
引用 4 楼 magi1201 的回复:
如果数据不规整的话,那截取的值就不准确了
在实际工作中,哪个软件会产生这样的日志?
姜小白- 2013-11-05
  • 打赏
  • 举报
回复
引用 3 楼 Cecil_911 的回复:
我看不出哪里不准确了,漏了什么
hadoop3@linux-240:~> cat time.txt
[2013-11-4 16:00:00]aa
[2013-11-4 20:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
[2013-11-4 19:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
hadoop3@linux-240:~> sed -n '/16:00:00/,/18:00:00/p' time.txt
[2013-11-4 16:00:00]aa
[2013-11-4 20:00:00]aa
[2013-11-4 17:00:00]bb
[2013-11-4 18:00:00]cc
如果数据不规整的话,那截取的值就不准确了
linux-c 2013-11-05
  • 打赏
  • 举报
回复
引用 10 楼 ljc007 的回复:
[quote=引用 8 楼 orient0001 的回复:] 请问用awk如何处理呢?不规整数据的处理问题我也发现了,我的一个思路是:如果非要用sed,需要事先对处理的数据排序。
[root]# cat urfile [2013-11-4 16:00:00]aa [2013-11-4 20:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [2013-11-4 19:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [root]# awk 'BEGIN{FS=OFS="[][]+"}{if($2>="2013-11-4 16:00:00")if($2<="2013-11-4 18:00:00")print}' urfile [2013-11-4 16:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc[/quote]
引用 10 楼 ljc007 的回复:
[quote=引用 8 楼 orient0001 的回复:] 请问用awk如何处理呢?不规整数据的处理问题我也发现了,我的一个思路是:如果非要用sed,需要事先对处理的数据排序。
[root]# cat urfile [2013-11-4 16:00:00]aa [2013-11-4 20:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [2013-11-4 19:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [root]# awk 'BEGIN{FS=OFS="[][]+"}{if($2>="2013-11-4 16:00:00")if($2<="2013-11-4 18:00:00")print}' urfile [2013-11-4 16:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc[/quote] 1024
ljc007 2013-11-05
  • 打赏
  • 举报
回复
引用 8 楼 orient0001 的回复:
请问用awk如何处理呢?不规整数据的处理问题我也发现了,我的一个思路是:如果非要用sed,需要事先对处理的数据排序。
[root]# cat urfile [2013-11-4 16:00:00]aa [2013-11-4 20:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [2013-11-4 19:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [root]# awk 'BEGIN{FS=OFS="[][]+"}{if($2>="2013-11-4 16:00:00")if($2<="2013-11-4 18:00:00")print}' urfile [2013-11-4 16:00:00]aa [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc [2013-11-4 17:00:00]bb [2013-11-4 18:00:00]cc
ceclinux 2013-11-04
  • 打赏
  • 举报
回复
引用 2 楼 orient0001 的回复:
这种取法不太准确,不能有效截取时间段内的全部内容
我看不出哪里不准确了,漏了什么
南城IT小工 2013-11-04
  • 打赏
  • 举报
回复
这种取法不太准确,不能有效截取时间段内的全部内容
Carl_CCC 2013-11-04
  • 打赏
  • 举报
回复
sed -n '/16:00:00/,/18:00:00/p' * > newfile.txt

19,613

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧