Macro lsfp2sas - Listing de fichiers Unix/Linux vers SAS

Ce code est également disponible en : Deutsch English Español
Niveau de difficulté
Débutant
Publié le :
Attention : Ce code nécessite des droits administrateur.
La macro `lsfp2sas©` utilise la méthode `filename pipe` pour exécuter une commande shell Unix (boucle `for` sur le motif de fichier). Elle capture la sortie standard de cette commande pour créer un dataset SAS© contenant le chemin complet du fichier (`filename`) et le nom du fichier seul en minuscules (`lcfname`). Elle gère les options SAS© (NOTES) pour éviter de polluer la log.
Analyse des données

Type : EXTERNE


Les données proviennent de l'arborescence du système de fichiers du système d'exploitation (commande shell exécutée via Pipe).

1 Bloc de code
DATA STEP Data
Explication :
Définition de la macro. Sauvegarde des options, définition d'un fileref de type PIPE exécutant une commande shell pour lister les fichiers, et étape Data pour lire le flux retourné par la commande et créer la table de sortie.
Copié !
1%macro lsfp2sas(filepattern,dsout);
2 
3 %local savopts;
4 %let savopts=%sysfunc(getoption(NOTES));
5 
6 %IF not %LENGTH(&dsout) %THEN %let dsout=_lsfp2sas;
7 
8 options nonotes;
9 
10 filename _lsfp pipe
11 "for fn in %sysfunc(dequote(&filepattern)) ; do echo $fn ; done";
12 
13 DATA &dsout;
14 LENGTH filename $ 300 lcfname $ 200;
15 INFILE _lsfp;
16 INPUT;
17 filename=trim(_infile_);
18 lcfname=lowcase(scan(filename,-1,"/"));
19 RUN;
20 
21 filename _lsfp CLEAR;
22 
23 options &savopts;
24 
25%mend lsfp2sas;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Author: Roland Rashleigh-Berry. Public domain software.