[英]How do I search for a word and retrieve the whole sentence is SAS
我编写了一个 SAS 程序,该程序通过 PROC PRINTTO 将 SAS 日志输出到特定文件夹。 此外,我使用 INDEX function 在日志文件中搜索字符串“ERROR:”。 如果发生错误,INDEX function(使用变量 X)将为 GT 1,从而激活宏语句 - 发送发生错误的 Email。 我希望找到一个 function 来查找字符串“ERROR:”但检索整个句子。
不确定句子,但应该很容易从日志文件中捕获该行的全文。
注意SAS会在第一列写ERROR,但冒号并不总是在第六列,有时前面还有文字。 只是在日志中搜索'ERROR:'会漏掉一些错误,并找到一些实际上不是错误的行,例如用于生成错误消息的SAS代码。
因此,此代码将创建一个数据集,其中包含所有带有错误消息的行。 它还将宏变量 NERROR 设置为找到的错误数。
data errors ;
if eof then call symputx('nerror',errno);
infile mylog truncover end=eof;
line+1;
input text $char200. ;
if text=:'ERROR' and index(text,':') then do;
errno+1;
output;
end;
run;
请注意,如果您想在需要多行时捕获完整的错误消息,那就更难了。 您将需要决定以下哪几行是消息的一部分。 另外,可以在多行错误消息的中间插入分页符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.