【发布时间】:2023-03-05 08:07:01
【问题描述】:
我有一个包含数百万行的文件,具有以下模式
01/02/1991,0931,7.13,7.13,7.13,7.13,8000
01/02/1991,0932,7.14,7.14,7.14,7.14,8000
01/02/1991,0935,7.16,7.16,7.16,7.16,3200
01/02/1991,0938,7.16,7.17,7.16,7.17,19200
01/02/1991,0941,7.19,7.19,7.19,7.19,200000
01/02/1991,0956,7.19,7.19,7.19,7.19,8800
日期格式为mm/dd/YYYY。如何仅获取 01/01/2002 和 08/31/2008 之间的数据范围并删除其他行?日期 01/01/2002 和 08/31/2008 本身可能不在文件中。
我想用 bash 来做
头文件:
01/02/1991,0931,7.13,7.13,7.13,7.13,83200^M$
01/02/1991,0932,7.14,7.14,7.14,7.14,8000^M$
01/02/1991,0935,7.16,7.16,7.16,7.16,3200^M$
01/02/1991,0938,7.16,7.17,7.16,7.17,19200^M$
01/02/1991,0941,7.19,7.19,7.19,7.19,200000^M$
01/02/1991,0956,7.19,7.19,7.19,7.19,8800^M$
01/02/1991,0957,7.20,7.20,7.20,7.20,13600^M$
01/02/1991,0958,7.22,7.22,7.22,7.22,5600^M$
01/02/1991,1003,7.22,7.23,7.22,7.23,8000^M$
01/02/1991,1006,7.23,7.23,7.23,7.23,10400^M$
【问题讨论】:
-
记录是否已经按日期排序?
-
是的,它们已经排序了
-
这些行真的是这样的双倍行距吗?顺便说一句,那不是
bash,而是sed。而你的“尝试”是荒谬的。你读过说明书吗? -
我是 sed 和 awk 的新手,我在这里发布它只是因为我对尝试不同的命令感到沮丧。我知道这是一个荒谬的例子,但我把它放在那里只是为了表明我做了功课。是的,文件中间没有那个空间
-
我还需要中间的行,不仅是与这两个日期相关的行,我稍后会尝试