DATA Step, Macro, Functions and more

To retain the files for the last seven days.

Posts: 66

To retain the files for the last seven days.

Hi All,


I am trying to keep only the last 7 days output and the input files used or created  by a  SAS process.

 and i am using the below mentioned command, but i see that all the output files created and the Input files for the SAS process.


data _Null_;

x "cd &Inpth.";

x "find &Inpth. -type f -mtime +7 -print | xargs rm";






Super User
Super User
Posts: 7,392

Re: To retain the files for the last seven days.

Well, you haven't mentioned what any of the macro variables are?  As for this kind of process when you are determining file date, it is not as straight forward, changing your system clock for instance is one simple way to mess this up.  Generally I would ask IT to setup some sort of file clean on a regular basis.

As for your code, the find dos command searches in a file for text, how are you intending using that for file dates?


If they are SAS files, then you should be able to pull dates of files from the SAS metadata - sashelp for instance.  If not then as simple dir can give you the info:

filename tmp pipe 'dir "<path>\*.*"';
data dirlist;
  length buff $200;
  infile tmp;
  input buff $;

Do be aware that if run on various machines/os's you would need to handle that, and different date formats etc.  Basically its more complicated than you think, so let IT use their tools (or if there are SAS tools you can use for example session cleaners are present in some SAS products).

Super User
Posts: 6,927

Re: To retain the files for the last seven days.

Have you counter-checked by logging on to the server, changing to the directory and do a ls -l on the files?

Maxims of Maximally Efficient SAS Programmers
Ask a Question
Discussion stats
  • 2 replies
  • 3 in conversation