Как сканировать и захватывать Linux имя папки с помощью SAS Programming? - PullRequest
0 голосов
/ 20 марта 2020

Я хочу перечислить все имена папок в каталоге. Например, в sas / data / есть 10 папок, а не CSV или TXT, просто папка, и я хочу перечислить все имена папок в коде или наборе данных. Есть ли способ сделать это?

В настоящее время у меня есть скрипт, который может распечатать все имя файла, но не имя папки. Сценарий выглядит следующим образом:

 %macro list_files(dir,ext);   %local filrf rc did memcnt name i;  
 %let rc=%sysfunc(filename(filrf,&dir));   %let
 did=%sysfunc(dopen(&filrf));      

    %if &did eq 0 %then %do; 
     %put Directory &dir cannot be open or does not exist;
     %return;   %end;

    %do i = 1 %to %sysfunc(dnum(&did));   

    %let name=%qsysfunc(dread(&did,&i));

 /*      %if %qupcase(%qscan(&name,-1,.)) = %upcase(&ext) %then %do;*/
       %if %qscan(&name,2,.) ne %then %do;
         %put &dir\&name;

         data _tmp;
           length dir $512 name $100;
           dir=symget("dir");
           name=symget("name");
         run;
         proc append base=want data=_tmp;
         run;quit;

       %end;
       %else %if %qscan(&name,2,.) = %then %do;        
         %list_files(&dir\&name,&ext)
       %end;

    %end;    %let rc=%sysfunc(dclose(&did));    %let
 rc=%sysfunc(filename(filrf));     

 %mend list_files; %list_files(/sasdata/data/,*)

Как мне настроить его, чтобы распечатать все имена папок?

...