Error[8]: Undefined offset: 7, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个包含多个数据结构的文件,如下所示: eventTimestamp: 2010-03-23T07:56:19.166result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.167result: Allowedprotocol: SMSpayload: RCOMM_SMS 我有一个包含多个数据结构的文件,如下所示:
eventTimestamp: 2010-03-23T07:56:19.166result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.167result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.186result: Allowedprotocol: SMSpayload: SMS-MO-FSMeventTimestamp: 2010-03-23T07:56:19.197result: Allowedprotocol: SMSpayload: copSeventTimestamp: 2010-03-23T07:56:29.519result: Blockedprotocol: SMSpayload: copStype: URL_IWFresult: Blocked

我想找到有效载荷的所有事件:SMS-MO-FSM或有效载荷:在2010-03-23 12:56:47和2010-03-23 13之间发生的SMS-MO-FSM-INFO: 56:47.到目前为止查询此文件时,我已按以下方式使用awk:

cat checkThis.txt |awk 'BEGIN{FS="\n"; RS=""; OFS=";"; ORS="\n"}     ~/eventTimestamp: 2010-03-23T14\:16\:35/ && ~/SMS-MO-FSM-INFO|SMS-MO-FSM$/ {= ""; print 
python -c "import time; ENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%s'; print int(time.mktime(time.strptime('2010-03-23T12:52:52',ENGINE_TIME_FORMAT)))"
}'

这将为我提供2010-03-23 14:16:35第二次发生的所有事件.但是,我正在努力思考如何将日期范围放入我的查询中.我可以使用以下内容将日期放入纪元时间但是如何在我的awk中使用以下内容来检查日期是否在所需的时间之间:

#!/usr/local/bin/pythonimport time,sysENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%s'testTime = sys.argv[1]try:    print int(time.mktime(time.strptime(testTime,ENGINE_TIME_FORMAT)))except:    print "Time to convert %s" % testTime    raise

我知道这可以在Python中完成,但我已经在Python中为此编写了一个解析器,我希望这个方法作为替代检查器,所以我想尽可能使用awk.

我更进一步,创建了一个时间转换的python脚本:

cat checkThis.txt| awk 'BEGIN {FS="\n"; RS=""; OFS=";"; ORS="\n"; "./firstDate '2010-03-23T12:56:47'" | getline start_time; close("firstDate"); "./firstDate '2010-03-23T13:56:47'" | getline end_time; close("firstDate");} ("./firstDate " | getline) > start_time {= ""; print 
awk 'BEGIN {        FS  = "\n"        RS  = ""        OFS = ";"        ORS = "\n"        t1  = "2010-03-23T07:45:00"        t2  = "2010-03-23T08:00:00"        m1  = "eventTimestamp: " t1        m2  = "eventTimestamp: " t2        } ~ /eventTimestamp:/ &&  ~ /SMS-MO-FSM(-INFO)?$/ {    if ( >= m1 &&  <= m2) print ,,,;}' "$@"
}'Traceback (most recent call last): file "./firstDate",line 4,in <module>testTime = sys.argv[1]IndexError: List index out of range

然后我尝试使用getline将转换分配给变量进行比较:

eventTimestamp: 2010-03-23T07:56:19.186;result: Allowed;protocol: SMS;payload: SMS-MO-FSM

getline在BEGIN中工作,我在最终打印中检查了它,但我似乎在脚本的比较部分有问题.

解决方法 关键的观察是,您可以使用字母数字比较来比较您的时间戳,并获得正确的答案 – 这是 ISO 8601表示法的美妙之处.

因此,稍微调整您的代码 – 并格式化以避免滚动条:

[+++]

显然,您可以将其放入脚本文件中 – 您不希望经常输入它.准确方便地输入日期范围是其中一个难点.请注意,我已调整时间范围以匹配数据.

在样本数据上运行时,它输出一条记录:

[+++] 总结

以上是内存溢出为你收集整理的linux – 使用awk检查两个日期全部内容,希望文章能够帮你解决linux – 使用awk检查两个日期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
Error[8]: Undefined offset: 8, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个包含多个数据结构的文件,如下所示: eventTimestamp: 2010-03-23T07:56:19.166result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.167result: Allowedprotocol: SMSpayload: RCOMM_SMS 我有一个包含多个数据结构的文件,如下所示:
eventTimestamp: 2010-03-23T07:56:19.166result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.167result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.186result: Allowedprotocol: SMSpayload: SMS-MO-FSMeventTimestamp: 2010-03-23T07:56:19.197result: Allowedprotocol: SMSpayload: copSeventTimestamp: 2010-03-23T07:56:29.519result: Blockedprotocol: SMSpayload: copStype: URL_IWFresult: Blocked

我想找到有效载荷的所有事件:SMS-MO-FSM或有效载荷:在2010-03-23 12:56:47和2010-03-23 13之间发生的SMS-MO-FSM-INFO: 56:47.到目前为止查询此文件时,我已按以下方式使用awk:

cat checkThis.txt |awk 'BEGIN{FS="\n"; RS=""; OFS=";"; ORS="\n"}     ~/eventTimestamp: 2010-03-23T14\:16\:35/ && ~/SMS-MO-FSM-INFO|SMS-MO-FSM$/ {= ""; print 
python -c "import time; ENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%s'; print int(time.mktime(time.strptime('2010-03-23T12:52:52',ENGINE_TIME_FORMAT)))"
}'

这将为我提供2010-03-23 14:16:35第二次发生的所有事件.但是,我正在努力思考如何将日期范围放入我的查询中.我可以使用以下内容将日期放入纪元时间但是如何在我的awk中使用以下内容来检查日期是否在所需的时间之间:

#!/usr/local/bin/pythonimport time,sysENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%s'testTime = sys.argv[1]try:    print int(time.mktime(time.strptime(testTime,ENGINE_TIME_FORMAT)))except:    print "Time to convert %s" % testTime    raise

我知道这可以在Python中完成,但我已经在Python中为此编写了一个解析器,我希望这个方法作为替代检查器,所以我想尽可能使用awk.

我更进一步,创建了一个时间转换的python脚本:

cat checkThis.txt| awk 'BEGIN {FS="\n"; RS=""; OFS=";"; ORS="\n"; "./firstDate '2010-03-23T12:56:47'" | getline start_time; close("firstDate"); "./firstDate '2010-03-23T13:56:47'" | getline end_time; close("firstDate");} ("./firstDate " | getline) > start_time {= ""; print 
awk 'BEGIN {        FS  = "\n"        RS  = ""        OFS = ";"        ORS = "\n"        t1  = "2010-03-23T07:45:00"        t2  = "2010-03-23T08:00:00"        m1  = "eventTimestamp: " t1        m2  = "eventTimestamp: " t2        } ~ /eventTimestamp:/ &&  ~ /SMS-MO-FSM(-INFO)?$/ {    if ( >= m1 &&  <= m2) print ,,,;}' "$@"
}'Traceback (most recent call last): file "./firstDate",line 4,in <module>testTime = sys.argv[1]IndexError: List index out of range

然后我尝试使用getline将转换分配给变量进行比较:

eventTimestamp: 2010-03-23T07:56:19.186;result: Allowed;protocol: SMS;payload: SMS-MO-FSM

getline在BEGIN中工作,我在最终打印中检查了它,但我似乎在脚本的比较部分有问题.

解决方法 关键的观察是,您可以使用字母数字比较来比较您的时间戳,并获得正确的答案 – 这是 ISO 8601表示法的美妙之处.

因此,稍微调整您的代码 – 并格式化以避免滚动条:

显然,您可以将其放入脚本文件中 – 您不希望经常输入它.准确方便地输入日期范围是其中一个难点.请注意,我已调整时间范围以匹配数据.

在样本数据上运行时,它输出一条记录:

[+++] 总结

以上是内存溢出为你收集整理的linux – 使用awk检查两个日期全部内容,希望文章能够帮你解决linux – 使用awk检查两个日期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
linux – 使用awk检查两个日期_系统运维_内存溢出

linux – 使用awk检查两个日期

linux – 使用awk检查两个日期,第1张

概述我有一个包含多个数据结构的文件,如下所示: eventTimestamp: 2010-03-23T07:56:19.166result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.167result: Allowedprotocol: SMSpayload: RCOMM_SMS 我有一个包含多个数据结构的文件,如下所示:
eventTimestamp: 2010-03-23T07:56:19.166result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.167result: Allowedprotocol: SMSpayload: RCOMM_SMSeventTimestamp: 2010-03-23T07:56:19.186result: Allowedprotocol: SMSpayload: SMS-MO-FSMeventTimestamp: 2010-03-23T07:56:19.197result: Allowedprotocol: SMSpayload: copSeventTimestamp: 2010-03-23T07:56:29.519result: Blockedprotocol: SMSpayload: copStype: URL_IWFresult: Blocked

我想找到有效载荷的所有事件:SMS-MO-FSM或有效载荷:在2010-03-23 12:56:47和2010-03-23 13之间发生的SMS-MO-FSM-INFO: 56:47.到目前为止查询此文件时,我已按以下方式使用awk:

cat checkThis.txt |awk 'BEGIN{FS="\n"; RS=""; OFS=";"; ORS="\n"}     ~/eventTimestamp: 2010-03-23T14\:16\:35/ && ~/SMS-MO-FSM-INFO|SMS-MO-FSM$/ {= ""; print 
python -c "import time; ENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%s'; print int(time.mktime(time.strptime('2010-03-23T12:52:52',ENGINE_TIME_FORMAT)))"
}'

这将为我提供2010-03-23 14:16:35第二次发生的所有事件.但是,我正在努力思考如何将日期范围放入我的查询中.我可以使用以下内容将日期放入纪元时间但是如何在我的awk中使用以下内容来检查日期是否在所需的时间之间:

#!/usr/local/bin/pythonimport time,sysENGINE_TIME_FORMAT='%Y-%m-%dT%H:%M:%s'testTime = sys.argv[1]try:    print int(time.mktime(time.strptime(testTime,ENGINE_TIME_FORMAT)))except:    print "Time to convert %s" % testTime    raise

我知道这可以在Python中完成,但我已经在Python中为此编写了一个解析器,我希望这个方法作为替代检查器,所以我想尽可能使用awk.

我更进一步,创建了一个时间转换的python脚本:

cat checkThis.txt| awk 'BEGIN {FS="\n"; RS=""; OFS=";"; ORS="\n"; "./firstDate '2010-03-23T12:56:47'" | getline start_time; close("firstDate"); "./firstDate '2010-03-23T13:56:47'" | getline end_time; close("firstDate");} ("./firstDate " | getline) > start_time {= ""; print 
awk 'BEGIN {        FS  = "\n"        RS  = ""        OFS = ";"        ORS = "\n"        t1  = "2010-03-23T07:45:00"        t2  = "2010-03-23T08:00:00"        m1  = "eventTimestamp: " t1        m2  = "eventTimestamp: " t2        } ~ /eventTimestamp:/ &&  ~ /SMS-MO-FSM(-INFO)?$/ {    if ( >= m1 &&  <= m2) print ,,,;}' "$@"
}'Traceback (most recent call last): file "./firstDate",line 4,in <module>testTime = sys.argv[1]IndexError: List index out of range

然后我尝试使用getline将转换分配给变量进行比较:

eventTimestamp: 2010-03-23T07:56:19.186;result: Allowed;protocol: SMS;payload: SMS-MO-FSM

getline在BEGIN中工作,我在最终打印中检查了它,但我似乎在脚本的比较部分有问题.

解决方法 关键的观察是,您可以使用字母数字比较来比较您的时间戳,并获得正确的答案 – 这是 ISO 8601表示法的美妙之处.

因此,稍微调整您的代码 – 并格式化以避免滚动条:

显然,您可以将其放入脚本文件中 – 您不希望经常输入它.准确方便地输入日期范围是其中一个难点.请注意,我已调整时间范围以匹配数据.

在样本数据上运行时,它输出一条记录:

总结

以上是内存溢出为你收集整理的linux – 使用awk检查两个日期全部内容,希望文章能够帮你解决linux – 使用awk检查两个日期所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1037089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存