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 ») :
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.
[^] # Re: difficile ....
Posté par Cyril Brulebois (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
forsur la sortie dels(en vrai : à éviter), surtout quandawkpeut 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/*», favoriserfindest une bonne idée :find /var/www/cgi-bin/LPAR_MAP -type f | while read file; do awk 'stuff' "$file"; doneAvec un
sortau milieu en option si l'ordre est important. Encore mieux avec-print0etxargs -0pour éviter les problèmes avec espaces et caractères spéciaux, mais je vais arrêter ma digression ici.Debian Consultant @ DEBAMAX