Ruby中Linux环境下zgrep命令执行失败问题求助
问题:Ruby执行zgrep命令在instant_eval环境下报错"undefined method `flush'"
我在Ruby代码中需要从.gz文件里搜索行并处理,采用zgrep命令实现搜索逻辑。这段代码在Linux环境通过instant_eval执行时始终报错,错误信息为:undefined method 'flush' for ScanView::ReportScriptingHelper::ScanViewScript,但在instant_eval外部执行、Windows环境下均可正常运行。相关日志及代码片段如下:
错误日志
2022-09-19 15:24:/src/SVSHelpers/file_search.rb(20):INFO:{"scanid"=>"110718", "rawrev"=>"SC_FLD_IODB0", "srchpattern"=>".*pie_mcawrp.FatalErrDetected", "limit"=>"20"} 2022-09-19 15:24:/src/SVSHelpers/file_search.rb(23):INFO:zgrep -i -m20 ".*pie_mcawrp.FatalErrDetected" /proj/platform_scandump/scanview30/ASCII/ScanviewStg/110718.txt.gz 2022-09-19 15:24:/src/SVSHelpers/file_search.rb(45):ERROR:problem in signal retrieval command: zgrep -i -m20 ".*pie_mcawrp.FatalErrDetected" /proj/platform_scandump/scanview30/ASCII/ScanviewStg/110718.txt.gz, error : undefined method `flush' for ScanView::ReportScriptingHelper::ScanViewScript, searchedline :
代码片段
items["srchpattern"] = items["srchpattern"].gsub("?", ".*") $logger.info("#{items}") command = "zgrep -i -m" + items["limit"] + ' "' + items["srchpattern"] + '" ' + $ascii_file_path + '/' + items["scanid"] +'.txt.gz' #command='zgrep -i -m20 ".*pie_mcawrp.FatalErrDetected" /proj/platform_scandump/scanview30/ASCII/ScanviewStg/110718.txt.gz' $logger.info("#{command}") ll = `#{command}` $logger.info("found lines : #{ll}") searchedlines = ll.split("\n") signals = [] for line in searchedlines do tokens = line.split(",") signals.push({ "signalNameString": tokens[0], "signalHexValueString": tokens[1], "signalDecimalValue": tokens[1].to_i(16) }) end return JSON.dump({ "statusmsg": "passed", "data": { "scanOrSystemIdString": items["scanid"], "rtlSignalDatApisList": signals } })
内容的提问来源于stack exchange,提问作者Mukesh Arya
相关产品推荐
相关产品推荐

