Community deutschsprachiger SAS-Anwender und -Programmierer

Antworten
Dies ist eine offene Gruppe. Melden Sie sich an und klicken Sie auf die Schaltfläche „Gruppe beitreten“, um Mitglied zu werden und damit zu beginnen, Beiträge in dieser Gruppe zu veröffentlichen.
Occasional Contributor Ina
Occasional Contributor
Beiträge: 6
proc datasets: ALLE Dateien in einer Bibliothek umbenennen

Hallo,

 

ich muß alle Dateinamen (SAS-Dateien) in einer Bibliothek auf gleiche Weise ändern. Die Dateien sollen nun heißen: a_[memname]. Es kommt also 'a_' vorne mit dazu. [memname] ist der urpsrüngliche Name und wird an 'a_' hinten drangehängt. Gibt es dafür eine elegante kompakte Lösung?

Trusted Advisor
Beiträge: 1.135
Betreff: proc datasets: ALLE Dateien in einer Bibliothek umbenennen

Hallo Ina,

 

jedenfalls funktionsfähig ist folgende Lösung, in der eine RENLIST genannte Makrovariable mit der Liste der Umbenennungen erzeugt wird:

proc sql;
select cats(memname,'=a_',memname) into :renlist separated by ' '
from dictionary.members
where libname='MYLIB';
quit;

proc datasets lib=mylib;
change &renlist;
quit;

"MYLIB" ist natürlich durch die betreffende Libref zu ersetzen. Umbenannt werden dann nicht nur SAS-Datasets, sondern auch SAS-Views, -Kataloge usw. Eine Beschränkung z. B. auf Datasets ist aber problemlos durch Erweiterung der WHERE-Bedingung und des CHANGE-Statements möglich:

where libname='MYLIB' & memtype='DATA';
change &renlist / mt=data;
Highlighted
Occasional Contributor Ina
Occasional Contributor
Beiträge: 6
Betreff: proc datasets: ALLE Dateien in einer Bibliothek umbenennen
Posted in reply to FreelanceReinhard

es hat super geklappt. Vielen Dank für schnelle Hilfe!