我有一个这样的清单:
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的位置,当他找到时请显示日期。
请有人帮助我。 我制作了一个剧本,但我无法显示日期。 非常感谢
答案 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