Comment utiliser les commandes bash xargs

Comment utiliser les commandes bash xargs

«Xargs est une commande bash qui permet l'exécution de plusieurs commandes dans la même ligne. Que les commandes prennent des paramètres ou des arguments en entrée, ils peuvent s'exécuter dans la même ligne lorsqu'ils sont combinés avec des xargs. Avec xargs, vous pouvez créer et exécuter plusieurs commandes via l'entrée standard, car Xargs peut prendre une entrée et le convertir en un argument de commande à utiliser par la commande suivante."

Pour vous aider à comprendre les xargs et comment vous pouvez l'utiliser, cet article donnera plusieurs exemples d'utilisation de la commande xargs. Regarde!

Comment utiliser la commande xargs

La façon dont vous utilisez la commande xargs dépend de ce que vous voulez réaliser. Si vous utilisez des xargs sans entrée, il fait écho à tout ce que vous tapez sur le terminal une fois que vous appuyez sur Ctrl + d

Gestion des fichiers et répertoires à l'aide de xargs

Si vous souhaitez trouver tous les fichiers avec une extension donnée, vous pouvez utiliser Xargs. Ayons un exemple d'utilisation de LS avec xargs pour les fichiers texte.

$ trouver . -nom '*.Txt '-Type F | xargs ls

Dans la commande ci-dessus, nous utilisons le trouver commande pour rechercher des fichiers dans le répertoire actuel qui ont un .Extension TXT.

Voici la sortie

Si vous souhaitez supprimer tous les fichiers que nous avons trouvés en utilisant la commande ci-dessus, vous pouvez utiliser la commande ci-dessous.

$ trouver . -nom '*.Txt '-Type F | xargs rm -f

Le -t Le drapeau est pour verbeux.

Supposons que vous souhaitiez créer plusieurs répertoires où vous ajoutez l'entrée de l'entrée standard. Nous pourrions combiner mkdir avec écho, Comme dans l'exemple ci-dessous.

$ echo 'Linux1 Tech2 Dir3 Dir2' | xargs mkdir

Si vous vouliez supprimer tous les répertoires dans le répertoire actuel, vous pouvez utiliser des xargs, comme indiqué ci-dessous.

$ trouver . -Type D | xargs rm -r

Xargs lisant l'entrée d'un fichier

En utilisant le -un drapeau, vous pouvez demander aux xargs de lire les éléments d'un fichier, comme dans le cas ci-dessous.

Avec le même exemple, nous pouvons démontrer comment combiner plusieurs commandes à l'aide de xargs. Pour cela, utilisez le -je drapeau.

Par exemple, nous pourrions utiliser la commande ci-dessous pour lire le contenu d'un fichier et créer un répertoire à l'aide de chaque chaîne du fichier.

$ Cat 1.txt | xarg -i% mkdir%

Vous pouvez aller plus loin dans la commande pour faire écho au contenu du fichier tout en créant le répertoire en ajoutant le Commande d'écho, comme indiqué ci-dessous.

$ Cat 1.txt | xargs -i% sh -c 'echo%; mkdir% '

Utilisation de xargs avec grep

La commande grep est utilisée pour les modèles de correspondance, et lorsque vous souhaitez rechercher une chaîne donnée dans divers fichiers, vous pouvez utiliser des xargs pour combiner trouver avec grep, où la sortie de trouver sera converti en entrée à utiliser par grep.

Voici un exemple où nous trouvons tous les fichiers texte contenant la chaîne «Linuxhint."

$ trouver . -nom '*.txt '| xargs grep 'linuxhint'

Limitation de sortie par ligne

Supposons que vous souhaitiez lire le contenu d'un fichier. Vous pouvez limiter le nombre de sorties pour chaque ligne en utilisant le -n option.

Ayons un exemple de nombres d'impression dans une plage donnée en utilisant le som commander et limiter la sortie par ligne à 4

$ SEQ 1 30 | xargs -n 4

Spécification du délimiteur

Par défaut, Xargs assume un espace vierge en tant que délimiteur. Cependant, si vous devez utiliser un autre délimiteur, vous devez utiliser le -d commande suivi du délimiteur.

Voici un exemple qui utilise un côlon comme délimiteur lorsque vous travaillez avec un fichier pour lire son contenu et créer des répertoires à l'aide des chaînes dans le fichier.

Voici le contenu de notre fichier.

Maintenant, exécutons la commande ci-dessous.

$ noms de chat.txt | xargs -d: | xarg -t mkdir

La sortie serait:

Le délimiteur nul

Si nous essayions d'utiliser des xargs avec des fichiers avec un espace vide dans les noms, cela apporterait des résultats incorrects car Xargs utilise un espace vide comme délimiteur. Dans un tel cas, nous devons utiliser le -0 Flag, qui signale Xargs à utiliser Null Delimiter. De plus, nous avons besoin du -print0 Flag, qui est utilisé par trouver pour indiquer une liste séparée nul.

Par exemple, supposons que nous avions les fichiers d'image ci-dessous.

Si nous essayions de supprimer tous les fichiers à l'aide de la commande ci-dessous, Xargs imprimerait uniquement les fichiers d'image sans espace dans leur nom, comme illustré ci-dessous.

$ trouver . -nom '*.Png '-Type F | xargs rm -f

Pour surmonter cela, nous devons utiliser le drapeau -0 et le -print0.

$ trouver . -nom '*.Png '-Type F -print0 | xargs -0 rm -f

Nous pouvons vérifier que nous avons réussi à supprimer tous les fichiers.

Conclusion

Ce guide a couvert la commande bash xargs en profondeur, donnant des exemples de comment l'utiliser pour réaliser divers aspects. En faisant référence aux exemples présentés, vous pouvez implémenter des xargs de votre côté pour effectuer diverses tâches. Consultez également la page de l'homme pour Xargs pour obtenir plus de détails d'utilisation.