通过使用shell脚本提供指定的时间间隔从文件中提取行

时间:2014-10-28 04:55:22

标签: shell awk

我有一个包含以下列Operation,Name,Start_Time,End_time,Status的文件。

列Start_Time包含日期和时间。

以下是表格。

Upload | XYZ | 22/10/2014 22:00:00 | 22/10/2014 22:15:10 | finished

Upload | ABC | 22/10/2014 22:10:00 | 22/10/2014 22:30:00 | failed

Upload | EFG | 22/10/2014 23:00:00 | 22/10/2014 23:30:00 | failed

我需要提取start_time位于22:00:0023:00:00之间的行。

我尝试使用awk命令。但是没能成功。

请帮忙。

提前致谢。

Shreyas

1 个答案:

答案 0 :(得分:0)

awk -F\| '$3~/(22:..:..)|(23:00:00)/' inputFile

将输出显示为

Upload | XYZ | 22/10/2014 22:00:00 | 22/10/2014 22:15:10 | finished
Upload | ABC | 22/10/2014 22:10:00 | 22/10/2014 22:30:00 | failed
Upload | EFG | 22/10/2014 23:00:00 | 22/10/2014 23:30:00 | failed

说明:

-F\|将输入字段分隔符设置为|

$3~/(22:..:..)|(23:00:00)/选择第3列$3遵循给定模式

的行

(22:..:..)22

开头的任何时间都匹配

(23:00:00)匹配23:00:00

修改

当列以空格分隔时

$ awk  '$4~/(22:..:..)|(23:00:00)/' sam
Upload  XYZ  22/10/2014 22:00:00  22/10/2014 22:15:10  finished
Upload  ABC  22/10/2014 22:10:00  22/10/2014 22:30:00  failed
Upload  EFG  22/10/2014 23:00:00  22/10/2014 23:30:00  failed