Sas 在put或%put语句后插入空行

Sas 在put或%put语句后插入空行,sas,Sas,我想知道,有没有一种简单的方法可以在日志中的%put或put语句后插入一个空行,而不添加额外的put语句 我使用许多宏将信息写入日志。但是,连续日志语句上的间距开始变得紧凑: NOTE: [MACRO] Executing: Main() NOTE: [MACRO] Executing: ImportData() NOTE: [AUTOCALL] Executing: ExcelOpen(inFile=\\file\path\to\excelFile.xlsx) NOTE: [AUTOCALL]

我想知道,有没有一种简单的方法可以在日志中的
%put
put
语句后插入一个空行,而不添加额外的
put
语句

我使用许多宏将信息写入日志。但是,连续日志语句上的间距开始变得紧凑:

NOTE: [MACRO] Executing: Main()
NOTE: [MACRO] Executing: ImportData()
NOTE: [AUTOCALL] Executing: ExcelOpen(inFile=\\file\path\to\excelFile.xlsx)
NOTE: [AUTOCALL] Opening \\file\path\to\excelFile.xlsx...
NOTE: [AUTOCALL] Succesfully opened \\file\path\to\excelFile.xlsx.
NOTE: [AUTOCALL] EXCELOPEN macro used (Total process time):
              real time            02.30 seconds
NOTE: [MACRO] Executing: ImportMortalityData()
NOTE: [MACRO] Executing: ImportMortalityDay0ToDay7()
NOTE: [AUTOCALL] Executing: EstablishDDELink(fileRef=mort0_7,
dirData=\\file\path\to\, fileName=excelFile.xlsx, sheetName=Mortality (Day0-7), range=R2C1:R500C5)
NOTE: [AUTOCALL] DDE link MORT0_7 established.
NOTE: [AUTOCALL] ESTABLISHDDELINK macro used (Total process time):
              real time            00.27 seconds
我可以插入一个额外的空白
%put或<代码>放置%put NOTE:
put NOTE:
语句后的code>语句。然而,这会让代码变得混乱,我想避免这种情况


在其他语言中,类似于
\r\n
的内容将添加到消息的末尾,但SAS似乎没有这些结构。我知道有十六进制值
'OD'x
(回车)和
'OA'x
(换行符)。然而,当我尝试使用它们时,它们被打印为文字。有什么想法吗?

对于PUT语句,您可以使用
/
,例如:

142  data _null_ ;
143    put "hi" / "mom" ;
144  run;

hi
mom
但是除了添加一个null%PUT语句之外,我不知道如何使用%PUT来实现这一点


PUT语句知道很多奇特的东西(/、@、@、分隔符等),主要是因为它用于写入文件(除了日志)。相比之下,由于%PUT只写入日志,因此它没有用于报告内容的所有选项。

对于PUT语句,您可以使用
/
来执行,例如:

142  data _null_ ;
143    put "hi" / "mom" ;
144  run;

hi
mom
但是除了添加一个null%PUT语句之外,我不知道如何使用%PUT来实现这一点


PUT语句知道很多奇特的东西(/、@、@、分隔符等),主要是因为它用于写入文件(除了日志)。相比之下,由于%PUT只写入日志,因此它没有所有用于报告的选项。

您需要使用单独的%PUT来写入空行。请注意,如果希望在SAS日志中保留颜色编码,而不使注释:文本混乱,则可以将注释:、警告:和错误:行开头的:替换为-

%macro xx;
%* write lines to the log ;
%put NOTE: [&sysmacroname] Starting. ;
%put NOTE- [&sysmacroname] Middle Note. ;
%put NOTE- %sysfunc(repeat(%str( ),%length(&sysmacroname)+1)) Middle Note Unlabeled. ;
%put ;
%put NOTE: [&sysmacroname] Ending. ;
%put ;
%mend xx;

您需要使用单独的%PUT来写入空行。请注意,如果希望在SAS日志中保留颜色编码,而不使注释:文本混乱,则可以将注释:、警告:和错误:行开头的:替换为-

%macro xx;
%* write lines to the log ;
%put NOTE: [&sysmacroname] Starting. ;
%put NOTE- [&sysmacroname] Middle Note. ;
%put NOTE- %sysfunc(repeat(%str( ),%length(&sysmacroname)+1)) Middle Note Unlabeled. ;
%put ;
%put NOTE: [&sysmacroname] Ending. ;
%put ;
%mend xx;

有趣的是,我一直使用
%put NO%str(TE-)只是颜色以处理纯彩色文本。但是你必须摆弄间距。整洁的我见过人们在错误:文本周围使用%str()来避免日志搜索中的误报。我从不这样做,因为将错误搜索限制在从第一列开始的搜索范围同样容易
grep'^ERROR.*:'*.log
很有趣,我一直使用
%put NO%str(TE-)只是颜色以处理纯彩色文本。但是你必须摆弄间距。整洁的我见过人们在错误:文本周围使用%str()来避免日志搜索中的误报。我从不这样做,因为将错误搜索限制在从第一列开始的搜索范围同样容易<代码>grep'^ERROR.*:'*.log