我有一个格式低于
的文件02 Jul 2016 00:00:00 2736359
02 Jul 2016 00:02:00 2736594
02 Jul 2016 00:04:00 2736828
02 Jul 2016 00:06:00 2737068
02 Jul 2016 00:08:00 2737303
02 Jul 2016 00:10:00 2737542
02 Jul 2016 00:12:00 2737775
02 Jul 2016 00:14:00 2738011
02 Jul 2016 00:16:00 2738251
02 Jul 2016 00:18:00 2738483
第一列是时间戳,第二列是数字。给定输入2737778,我希望输出为“2016年7月2日00:12:00和2016年7月2日00:14:00”,因为2737778介于2737775和2738011之间。我可以在awk中执行此操作吗?是否可以将当前行中的数字与下一行进行比较?
答案 0 :(得分:2)
另一个类似的awk
awk -v n=2737778 'n<=$NF{if(p) print p; print; exit} {p=$0}' file
02 Jul 2016 00:12:00 2737775
02 Jul 2016 00:14:00 2738011
答案 1 :(得分:1)
是的,可以在awk中提前阅读,请参阅Peek at next line, but don't consume it。这是另一种方法。
awk '{ if (NR == 1) { save = $0; prtsw = 1 }
else if (prtsw == 1 && 2737778 < $5) {
print save
print $0
prtsw = 0
}
else { save = $0 }
}' abetween.txt