j'ai un script awk qui m'effectue un traitement et une liste de fichiers contenu dans un fichier liste_de_fichiers.txt pour les traiter tous je faisais cette commande:
$cat liste_de_fichiers.txt | xargs awk -f script.awk
mais j'avais un souci car seule le premier fichier contenu dans liste_de_fichiers.txt était traiter;
J'ai pu résoudre mon pb, est traiter tous les fichiers contenus dans liste_de_fichiers.txt par le biais de la commande :
$sort liste_de_fichiers.txt | xargs awk -f script.awk
liste_de_fichiers.txt contient un fichier par ligne et est de la forme :
/home/toto/file1.txt
/home/toto/file2.txt
/home/toto/file3txt
/home/toto/file4.txt etc...
Je voulais savoir pourquoi ma commande ne marche pas avec cat, mais fonctionne tres bien avec sort, puisqu'au fond elles donne en sortie a peu près la meme chose ?
Merci
# cat inutile
Posté par totof2000 . Évalué à 5.
man xargs pour comprendre:
(extrait d'une page man sous aix):
1. To use a command on files whose names are listed in a file, enter:
xargs lint -a <cfiles
If the cfiles file contains the following text:
main.c readit.c
gettoken.c
putobj.c
the xargs command constructs and runs the following command:
lint -a main.c readit.c gettoken.c putobj.c
(...)
5. To construct a command that contains a specific number of arguments and to
insert those arguments into the middle of a command line, enter:
ls | xargs -n6 | xargs -I{} echo {} - some files in the directory
If the current directory contains files chap1 through chap10, the output
constructed will be the following:
chap1 chap2 chap3 chap4 chap5 chap6 - some files in the directory
chap7 chap8 chap9 chap10 - some file in the directory
Détails sur l'option -n:
-n Number Runs the Command parameter using as many standard input arguments as
possible, up to the maximum specified by the Number parameter. The xargs command
uses fewer arguments if:
1. If the accumulated command line length exceeds the bytes specified by the
-s Size flag.
2. The last iteration has fewer than Number, but not zero, arguments
remaining.
Note: The -L, -I (Lowercase L), and -n flags are mutually exclusive;
the last flag specified takes effect.
# Pour répondre a ta question ....
Posté par totof2000 . Évalué à 2.
Je ne comprend pas non plus pourquoi il se comporterait différamment avec sort.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.