Xargs
xargs (abréviation de «extended arguments», arguments étendus) [1] est une commande Unix présente dans la plupart des systèmes d'exploitation de type Unix. Elle est utilisée pour construire et exécuter des commandes à partir de l'entrée standard; mise en argument à toute autre programme.
| Type |
Utilitaire UNIX (d) Programme informatique |
|---|
En effet, certain programme comme grep et awk peuvent prendre en entrée soit des arguments de ligne de commande, soit l'entrée standard. Cependant, cp ou echo ne peuvent accepter d'entrée que sous forme d'arguments, c'est pourquoi xargs est nécessaire.
Exemples
modifierUn des exemples d'usage de la commande xargs est sa faculté à prendre une liste d'argument en entrée pour la donner à tout autre programme. Stéphane Chazelas documente et explique cet usage et précise que la fonctionalité d'xargs permet d'éviter d'employer des boucles (for, while, etc.) [2]
while IFS= read -r line; do
someprog -f "$line"
done < file-list.txt
# cette boucle pourrait être écrite en une seule ligne avec xargs :
<file-list.txt tr '\n' '\0' | xargs -r0 -n1 someprog -f
# ou encore avec gnu xargs
xargs -rd '\n' -n1 -a file-list.txt someprog -f
Pages du manuel
modifierxargs(1)– GNU Findutils referencexargs(1): construct argument list(s) and execute utility – FreeBSD General Commands Manualxargs(1): construct argument list(s) and execute utility – NetBSD General Commands Manualxargs(1):construct argument list(s) and execute utility – OpenBSD General Commands Manualxargs(1): construct argument lists and invoke utility – Solaris 11.4 User Commands Reference Manual
Références
modifier- ↑ « The Unix Acronym List: The Complete List » [archive du ], www.roesler-ac.de (consulté le )
- ↑ (en) « Why is using a shell loop to process text considered bad practice? », sur Unix & Linux Stack Exchange (consulté le )