<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: checking dates under dir in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337413#M22427</link>
    <description>where I was trying to get is applying "cd" command to each dir (dir1/dir2/dir3) and get output in 3 different sas datasets which shows dir or files details for those 3 dir...&lt;BR /&gt;&lt;BR /&gt;so output would be for example, &lt;BR /&gt;&lt;BR /&gt;datasets=file1&lt;BR /&gt;var= var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;&lt;BR /&gt;&lt;BR /&gt;datasets=file2&lt;BR /&gt;var= var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;&lt;BR /&gt;&lt;BR /&gt;datasets=file3&lt;BR /&gt;var= var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;</description>
    <pubDate>Thu, 02 Mar 2017 15:43:28 GMT</pubDate>
    <dc:creator>woo</dc:creator>
    <dc:date>2017-03-02T15:43:28Z</dc:date>
    <item>
      <title>checking dates under dir</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337167#M22404</link>
      <description>&lt;P&gt;Hello friends,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Goal is pull details info for files&amp;nbsp;under multiple directories - running code in sas eg agianst linux environment,,,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;i have&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;amp;x&lt;/STRONG&gt; macro var resolves to &lt;STRONG&gt;dir1, dir2, dir3&lt;/STRONG&gt; and&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;amp;numoffiles&lt;/STRONG&gt; resolves to &lt;STRONG&gt;3&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;all directories (dir1, dir2 and dir3) contains few other files and i want to pull all details about those files&amp;nbsp;(&lt;STRONG&gt;separately&lt;/STRONG&gt; for dir1 dir2 dir3)&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/xyz/dir1&lt;/P&gt;
&lt;P&gt;/xyz/dir2&lt;/P&gt;
&lt;P&gt;/xyz/dir3&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*This data step not working fine&amp;nbsp;&amp;nbsp; &amp;lt;-- what modification needs to be done&amp;nbsp; &amp;lt;- if you can please help*/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="3"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &lt;STRONG&gt;&lt;I&gt;test&lt;/I&gt;&lt;/STRONG&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; i=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;1&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%to&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; &amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;numoffiles.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;data repo.file&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;i.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; (drop=month day);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; length access $ &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;20&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt; files $ &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;200&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; infile &lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;"cd /xyz/&amp;amp;temp. ; ls -lt;"&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt; pipe firstobs=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;2&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;input var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; date=input(catt(day,month,&lt;/FONT&gt;&lt;FONT color="#800080" face="Courier New" size="3"&gt;'2017'&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;),&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;);&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt; format date &lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="3"&gt;date9.&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="3"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="3"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;%mend;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="3"&gt;%test;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;so output would be like,&lt;/P&gt;
&lt;P&gt;file1 dataset should have all those var (mentioned in input statement) with files details&amp;nbsp;for dir1&lt;/P&gt;
&lt;P&gt;file2 dataset should have all those var (mentioned in input statement) with files details&amp;nbsp;for dir2&lt;/P&gt;
&lt;P&gt;file3 dataset should have all those var (mentioned in input statement) with files details&amp;nbsp;for dir3&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Mar 2017 22:36:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337167#M22404</guid>
      <dc:creator>woo</dc:creator>
      <dc:date>2017-03-01T22:36:33Z</dc:date>
    </item>
    <item>
      <title>Re: checking dates under dir</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337192#M22409</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;I don't have unix right here, however this may also work as is in unix.

I do have macro utilities to parse ls -l output into a SAS dataset. But it is somewhat advances.

%macro unx(cmd=dir,dir=d:/txt);
  x "cd &amp;amp;dir";
  filename xeq pipe "&amp;amp;cmd";
  data _null_;
    infile xeq;
    input;
    putlog _infile_;
  run;quit;
%mend unx;

%unx;

 Volume in drive D is data
 Volume Serial Number is 825D-0460

 Directory of d:\txt

03/01/2017  02:43 PM    &amp;lt;DIR&amp;gt;          .
03/01/2017  02:43 PM    &amp;lt;DIR&amp;gt;          ..
09/14/2016  02:12 PM                35 area.txt
03/01/2017  06:54 AM               247 class.txt
03/01/2017  03:36 PM             1,704 longtext.txt
09/11/2016  05:54 PM               406 pym.txt
09/12/2016  08:05 AM               384 sink.txt
12/12/2016  11:59 AM                28 symbols.txt
11/05/2016  07:24 PM                76 test.txt
08/16/2016  11:29 AM               167 test.txt.txt
11/21/2016  09:41 AM               227 txtchg.txt
11/21/2016  08:44 AM                76 txtnew.txt
11/21/2016  08:44 AM                77 txtold.txt
08/06/2016  05:05 PM               246 utl_pyjson.txt
02/05/2017  11:36 AM               169 varlist.txt
08/14/2016  06:19 AM    &amp;lt;DIR&amp;gt;          vdo
11/26/2016  05:21 AM                84 walrus.txt
12/22/2016  05:58 AM                 0 xml_list.txt
              18 File(s)          9,571 bytes
               3 Dir(s)  429,669,924,864 bytes free
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 02 Mar 2017 00:20:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337192#M22409</guid>
      <dc:creator>rogerjdeangelis</dc:creator>
      <dc:date>2017-03-02T00:20:30Z</dc:date>
    </item>
    <item>
      <title>Re: checking dates under dir</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337196#M22411</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;* there is an issue with dates when using unix "ls-l".
 current dates (past year?) do not have the year.
 I think the perl code below fixes that and gives much
  more accurate file data and times?&lt;BR /&gt;&lt;BR /&gt;These utilities might help?


/* T000411 FILENAMES IN UNIX OR WINDOWS DIRECTORY INTO A SAS DATASET
%macro utldatadir(pth);
data dir;
 rc=filename("mydir","&amp;amp;pth");
 did=dopen("mydir");
 if did &amp;gt; 0 then do;
  memcount=dnum(did);
  do i=1 to memcount;
   lstname=dread(did,i);
     t_cnt+1;
     output;
 end;
 end;
run;
proc print; var lstname t_cnt; run;
%mend utldatadir;

%utldatadir(c:\rtf);

/* T000412 FILENAMES, USER AND SIZE IN A UNIX DIRECTORY INTO A SAS DATASET
%macro dirlst(pth=%str(.));
filename oecmd pipe "ls -l &amp;amp;pth";
data dirlst;
length fyl $100 usr $16 siz $20;
  infile oecmd truncover lrecl=500 pad;
  input;
  fyl=left(reverse(scan(left(reverse(_infile_)),1,' ')));
  usr=scan(_infile_,3,' ');
  siz=scan(_infile_,4,' ');
  dte=substr(_infile_,index(_infile_,strip(siz))+length(strip(siz)));
  dte=substr(dte,1,index(dte,fyl)-1);
run;
%mend dirlst;


/* T000370 USING PERL TO GET UNIX DATETIME IN SECONDS FOR ALL OBJECTS IN A DIRECTORY  IGNORE WARNING ABOUT %S */
   %let pth=/home/regusers/local/utl/rtf;
   %let outlst=dates;
   data _null_;
   call system("cd &amp;amp;pth");
   call system("setenv PWD &amp;amp;pth");
   run;
   %let pwd=%sysget(PWD);
   %put pwd=&amp;amp;pwd;
   filename getdte pipe "perl -e 'foreach(@ARGV){$t =localtime ( ( ( stat ( $_ ) ) [9] ) ); printf(qq{%-64s%s\n},$_,$t);}' *";
   data &amp;amp;outlst(index=(program/unique));
     format cvtdte datetime23.1 sdfdtetym date9.;
     infile getdte;
     input program $64. @69 getmth $3. @73 getday $3. @85 getyer $4. @76 gettym $8.;
     sav=cats(getday,getmth,getyer,':',gettym);
     cvtdte=input(cats(getday,getmth,getyer,':',gettym),datetime18.);
     sdfdtetym=datepart(cvtdte);
     fulfyl=cats("&amp;amp;pth",'/',program);
     if index(program,'.')&amp;gt;0;
     if not (program =: 'init');
     keep program sdfdtetym fulfyl cvtdte;
   run;
   filename getdte clear;
   proc print data=_last_;run;


&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 02 Mar 2017 00:44:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337196#M22411</guid>
      <dc:creator>rogerjdeangelis</dc:creator>
      <dc:date>2017-03-02T00:44:54Z</dc:date>
    </item>
    <item>
      <title>Re: checking dates under dir</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337413#M22427</link>
      <description>where I was trying to get is applying "cd" command to each dir (dir1/dir2/dir3) and get output in 3 different sas datasets which shows dir or files details for those 3 dir...&lt;BR /&gt;&lt;BR /&gt;so output would be for example, &lt;BR /&gt;&lt;BR /&gt;datasets=file1&lt;BR /&gt;var= var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;&lt;BR /&gt;&lt;BR /&gt;datasets=file2&lt;BR /&gt;var= var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;&lt;BR /&gt;&lt;BR /&gt;datasets=file3&lt;BR /&gt;var= var1 $ var2 $ var3 $ var4 $ size $ month $ day $ time $ files;</description>
      <pubDate>Thu, 02 Mar 2017 15:43:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/checking-dates-under-dir/m-p/337413#M22427</guid>
      <dc:creator>woo</dc:creator>
      <dc:date>2017-03-02T15:43:28Z</dc:date>
    </item>
  </channel>
</rss>

