【发布时间】:2012-05-24 09:02:15
【问题描述】:
下面是 DATA SET 步骤的伪装。 我在以通用前缀开头的目录中获取文件。
为了这个调试程序,假设前缀是'test'。
所以我们得到了 test_abc.txt、test_123.txt 等文件。
我们要做的是提取每个文件的最后修改时间。 由于我在Unix系统下,所以我使用下面的“foo pipe 'ls -o -g --full-time ...'”来获取我们感兴趣的时间。
在 work.tempo 中,我希望得到一个包含文件名(vname)列表和相应修改日期(mod_datec)的表。
Voilà le souci,je vous remercie!
%macro universe(directory, countryname, prefix);
data work.tempo;
length vname $256.;
rc = dopen(&directory);
vmax = dnum(rc);
select("&countryname");
when ("France")
do;
do i = 1 to vmax;
vname = dread(rc,i);
if vname=:"&prefix."
then do;
filename foo pipe "ls -g -o --full-time ~/&prefix.*";
data _null_;
infile foo;
input @15 mod_date $11.;
if mod_date=" " then stop;
mod_datec = scan(mod_date,1,"-")
||scan(mod_date,2,"-")
||scan(mod_date,3,"-");
put mod_datec= ;
run;
/*I want to output mod_datec to work.tempo from here*/
end;
end;
end;
otherwise;
end;
rc = dclose(rc);
run;
%mend;
%universe(Earth, France, test);
【问题讨论】:
-
由于本网站的问答性质,最好先提出问题,然后自己回答。 (您可以回答自己的问题。)
-
我已将您的答案复制到实际答案中,以便为“未回答”队列删除此问题。请用答案回答您自己的问题(而不是通过更新问题)。它可以帮助其他可能跳过您的问题的用户(认为没有给出任何答案)。