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";
run;
Regards,
Santosh
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 $; run;
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).
Have you counter-checked by logging on to the server, changing to the directory and do a ls -l on the files?
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.