【发布时间】:2019-09-03 02:50:37
【问题描述】:
我有一个包含多行的文件,这些行在第二列中都有一个日期。如果日期大于下一行的日期,我正在寻找一个打印整行的命令。
当不再是这种情况时,我希望它停止,不要打印任何其他内容。
我是菜鸟,所以如果你能解释你的答案,那就太好了。
我正在尝试使用 awk(答案可以是任何命令)
awk '$2 > ?nextline?$2 {print}' file
我找不到如何检查下一行或如何在第一次大于命令不正确后停止。
输入:
Jan 20 text1
Jan 15 text2
Jan 15 text3
Jan 3 text4
Jan 27 text5
Jan 17 text6
(more lines...)
想要的输出:
Jan 20 text1
Jan 15 text2
Jan 15 text3
Jan 3 text4
【问题讨论】:
-
当这条线的 3 小于
Jan 27 text5的27时,我不知道你的输出中的线Jan 3 text4是怎样的?你能详细说明一下吗? -
(第 2 栏日期)20>15>3>27>17。 27 不小于 3。所以我想要从第一行到日期从 3 到 27 的所有内容。当以下行的日期较大时,我不想要该输出或之后的任何内容。
-
就像在生活中一样,在软件中,根据已经发生的事情来做事情比根据将来会发生的事情来做事情要容易得多。所以不要根据下一行的内容来写需求,根据上一行的内容来写需求,你会发现想出解决方案会容易得多。