• [^] # Re: difficile ....

    Posté par (site web personnel) . En réponse au message Script awk : Afficher le nom du fichier en cours de traitement ?. Évalué à 7.

    On peut se poser la question d'itérer avec un for sur la sortie de ls (en vrai : à éviter), surtout quand awk peut gérer plusieurs fichiers d'entrée. Exemple en affichant le nom de chacun à chaque fois qu'on est sur la première ligne du fichier courant (« The input record number in the current input file ») :

    awk 'FNR == 1 {print FILENAME}' /var/www/cgi-bin/LPAR_MAP/*

    Si on veut d'une part autoriser autant de fichiers que possible et ne pas être limité par une quelconque limite de taille maximale pour une commande, et d'autre part éviter le cas d'erreur « l'expansion du motif n'a rien donné, donc on travaille sur un fichier dont le nom est exactement /var/www/cgi-bin/LPAR_MAP/* », favoriser find est une bonne idée :

    find /var/www/cgi-bin/LPAR_MAP -type f | while read file; do awk 'stuff' "$file"; done

    Avec un sort au milieu en option si l'ordre est important. Encore mieux avec -print0 et xargs -0 pour éviter les problèmes avec espaces et caractères spéciaux, mais je vais arrêter ma digression ici.

    Debian Consultant @ DEBAMAX