首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重置永久数据上的生成编号

重置永久数据上的生成编号
EN

Stack Overflow用户
提问于 2017-10-05 06:08:03
回答 1查看 26关注 0票数 0

好日子,

我有以下从第10代开始的永久文件系列:

代码语言:javascript
复制
file#010
file#011
file#012
....
file#062 
file /*the latest one*/

这是由于一些清理工作,第1-9代被认为有错误的数据,并被删除。

,我想重新生成这个系列,以便第一个是生成#001,#002等等:

代码语言:javascript
复制
file#001
file#002
file#003
....
file#052 
file /*the latest one*/

我想出的唯一办法是将整个系列保存到另一个名称,删除旧数据并重新保存它们。这似乎很愚蠢,而且-ooops-的潜在损害风险太高.有什么办法可以再生代数位吗?

EN

回答 1

Stack Overflow用户

发布于 2017-10-05 07:31:51

如果您要问的是如何使用SAS重命名这些文件,则应该这样做(假设您的环境允许X命令):

代码语言:javascript
复制
%let dir=<path_to_your_folder>;
filename fn pipe "dir /b &dir.\file#*";
data _null_;
infile fn;
input;
rc=rename(cats("&dir.\",_infile_),cats("&dir.\file#",put(_N_,z3.)),'file');
run;

您也可以只使用SAS函数进行相同的操作。

代码语言:javascript
复制
%let dir=<path_to_your_folder>;
data _null_;
  filename root "&dir";
  did=dopen('root');
  numfiles=dnum(did);
  n=10;
  do i=1 to numfiles;
    physname=dread(did,i);
    if prxmatch('/^file#\d\d\d/',physname) then do;
      rc=rename(cats("&dir.\",physname),cats("&dir.\file#",put(n,z3.)),'file');
      n+1;
    end;
  end;
  rc=close(did);
run;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46578903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档