im麻烦您从文件中删除一些特定的行,但这并不是那么简单。该问题要求搜索,然后从特定日期和时间(例如2008-06-08
和12:40:53.90 AM
)直到用户希望的日期(即读取变量输入$dayy
)保存行。真正的问题是,我希望12:40:53
之后的行数更大,直到$dayy
例如2008-06-12
,我需要在特定时间12:40:53.90
之前,恰好在4天之后存在的行。我使用了下面的bash代码,并使用了最后一个awk命令,希望删除当天($dayy
)中的行,并且它们的时间在12:40:53.90
之后,但是它将删除该日期中的所有行。如果可以的话,我将非常感谢。
例如,如果第一天是2008-06-08
(spec_date
),时间是12:40:53.90
(timee
),那么我希望从那天开始直到第二天相同时间2008-06-10
([ C0])
dayy
我的数据示例
read dayy ; read spec_date ; read timee ;
awk -v dayy $dayy -v spec_date=$spec_date -v timee=$timee '{ if($1 >=spec_date && $2>=timee && $1 <= dayy) print $0}' ex1.dat > ex2.dat
awk -v dayy=$dayy '! ( $1==dayy && $2 ="[12-23]:[0-59]:[0-59].[0-50]")' ex2.dat
您需要匹配3种情况:
因此写下每个条件,并将其与2008-06-08 12:40:53.90
2008-06-08 12:43:39.80
.......................
2008-06-11 **12:39:34.22**
2008-06-11 13:21:23:43
组合。
||