检查sas代码中是否存在%include语句

检查sas代码中是否存在%include语句,sas,Sas,我有SAS代码,其中包括以下代码行 %包括“/sas/dev/compare.sas” 它位于服务器上的位置 /sas/cpm/dev/code 所以,目前我正在手动执行的操作转到上面的路径,打开每个.sas代码(在一个文件夹中,您可以说在/sas/cpm/dev/code位置有4个代码),并检查%include“/sas/dev/compare.sas”代码行是否存在 任何人都可以帮助我而不必手动检查/打开sas代码。如何检查%include“/sas/dev/compare.sas”;存在与

我有SAS代码,其中包括以下代码行

%包括“/sas/dev/compare.sas”

它位于服务器上的位置 /sas/cpm/dev/code

所以,目前我正在手动执行的操作转到上面的路径,打开每个.sas代码(在一个文件夹中,您可以说在/sas/cpm/dev/code位置有4个代码),并检查%include“/sas/dev/compare.sas”代码行是否存在

任何人都可以帮助我而不必手动检查/打开sas代码。如何检查%include“/sas/dev/compare.sas”;存在与否

谁能帮我写sas吗, 我们可以将每一个代码传递给右边的宏


谢谢

您可以通过使用fileexist函数来完成

%let  myfile = "/sas/dev/compare.sas";
  %macro filecheck;
  %if %sysfunc(fileexist(&myfile)) 
  %then % include "/sas/dev/compare.sas";
   %else  %put The external file &myfile does not exist.;
  %mend;       
  %filecheck; 
您可以通过以下方式完成此操作:

  • 列出每个文件夹中的所有.sas文件
  • 为每个文件创建一个datasetp/infle语句
  • 在文件的每一行中搜索
    %include”/sas/dev/compare.sas
  • 如果找到行,则在日志中打印文件名和行号
代码:

输出:

file_path=\\sas\SASDATA\momo\file1.sas
file_path=\\sas\SASDATA\momo\file2.sas
file_path=\\sas\SASDATA\momo\file3.sas
file_path=\\sas\SASDATA\momo\file4.sas
日志:file4.sas是唯一没有此
%include”/sas/dev/compare.sas”的文件


这不是unix
grep
命令的作用吗?它不在文件检查之上,而是%include语句是否存在于.sas代码中%if%sysfunc(fileexist(&myfile))检查文件是否存在,如果存在,它将执行代码,否则它会说文件不存在非常感谢,将尝试此方法
file_path=\\sas\SASDATA\momo\file1.sas
file_path=\\sas\SASDATA\momo\file2.sas
file_path=\\sas\SASDATA\momo\file3.sas
file_path=\\sas\SASDATA\momo\file4.sas
\\sas\SASDATA\momo\file1.sas includes @ line _N_=1
\\sas\SASDATA\momo\file2.sas includes @ line _N_=1
\\sas\SASDATA\momo\file4.sas includes @ line _N_=1