SAS:如何从 UNIX 文件夹中检测 SAS 中的日期格式?

SAS: How to detect the date format in SAS from UNIX folder?

我可以访问 linux 目录,其中包含多个名称各不相同的文件夹。 例如。 01312019 19990131 europe_1 约翰塞纳

根据以上 4 个示例,只有第一行和第二行是有效的日期格式 (MMDDYYYY & YYYYMMDD)。

我想要实现的是识别并标记具有我想要的日期格式的文件夹,例如 MMDDYYYY。一旦确定,我会写一套规则进一步处理它。

我下面的脚本已经可以扫描目录了。

    data allfilenames;
    length fref  fname 0;
    did = filename(fref,"&ROOT./&Directory.");
    did = dopen(fref);
    do i = 1 to dnum(did);
      fname = dread(did,i);
      output;
    end;
    did = dclose(did);
    did = filename(fref);
    keep fname;
run;

data folderonly;
    set allfilenames;
    if count(fname,'.') >0 then delete;
run;

但是,现在我卡在了如何检查文件夹名称的日期格式上。同样,文件夹名称可能根本不包含有效的日期格式,或者包含不同的日期格式(YYYYMMDD 或 MMDDYYYY)。

有没有我可以遵循的指南?

data folderonly ;
  input @1 fname .;
datalines ;
01122021
12312021
20210901
blahblah
;
run ;

data check ;
  set folderonly ;
  if input(fname,??mmddyy8.) then valid_mmddyy = 1 ;
run ;

那个??在信息格式抑制由于数据与信息不匹配而导致的任何错误之前。