用于获取文件日期的Linux脚本

时间:2017-08-28 10:00:05

标签: linux bash shell

我有一个这样的清单:

2017-07-24 00:00:01 domate request time: 142
2017-07-24 00:00:01 domate request time: 256
...
...
2017-07-24 23:59:01 domate request time: 546

大约有20000行。 我想创建一个脚本,找到这个数字(时间)> 1000的位置,当他找到时请显示日期。

请有人帮助我。 我制作了一个剧本,但我无法显示日期。 非常感谢

2 个答案:

答案 0 :(得分:1)

这应该这样做 - 如果第6列大于1000,则会产生前两列。

cat filename | awk '$6 > 1000 {print $1,$2}'

答案 1 :(得分:0)

bash解决方案,这将另外验证日期是否为有效格式。

while read -r line; do
    [[ $line =~ ([0-9]{4}-[0-9]{2}-[0-9]{2}\ [0-9]{2}:[0-9]{2}:[0-9]{2}).*time:\ ([0-9]*) ]] || continue
    if (( ${BASH_REMATCH[2]} > 1000 )); then
        echo ${BASH_REMATCH[1]}
    fi
done <file

示例输入:

2017-07-24 00:00:01 domate request time: 142
2017-07-24 00:00:01 domate request time: 256
2017-07-24 23:59:01 domate request time: 546
2017-07-25 00:00:01 domate request time: 1420

示例输出:

2017-07-25 00:00:01