Lister les fichiers avec chemin complet (Unix)

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.
Cette macro exécute une commande shell Unix pour lister les fichiers qui correspondent à un pattern spécifié (ex: /path/*.sas©). Elle est conçue pour les environnements Unix. Le résultat est une chaîne de caractères contenant la liste des chemins de fichiers, où chaque chemin est complet et entouré de guillemets doubles, ce qui permet de gérer correctement les noms de fichiers contenant des espaces. La macro s'appuie sur une autre macro non-standard, `%qreadpipe`, pour exécuter la commande système.
Analyse des données

Type : EXTERNE


La macro n'utilise pas de jeux de données SAS. Elle interagit directement avec le système de fichiers de l'OS (Unix) pour en lister le contenu via une commande shell. La source de l'information est donc le système d'exploitation.

1 Bloc de code
Macro
Explication :
Le code définit une macro `%lsfpq` qui accepte un chemin de répertoire avec un pattern de fichier (`dir`). Elle utilise la macro `%qreadpipe` pour exécuter une commande shell Unix. Cette commande (`for fn in ...`) parcourt tous les fichiers correspondant au pattern fourni, puis affiche chaque nom de fichier avec son chemin complet, entouré de guillemets. La fonction `%unquote` nettoie le résultat final pour le retourner sous forme de chaîne de caractères simple.
Copié !
1%macro lsfpq(dir);
2%unquote(%qreadpipe(for fn in %sysfunc(dequote(&dir)) ;
3DO echo \"$fn\" ;
4done))
5%mend lsfpq;
6 
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 : This is public domain software. No guarantee as to suitability or accuracy is given or implied. User uses this code entirely at their own risk.