GNU/Linux >> Tutoriels Linux >  >> Linux

exécuter une commande sur chaque ligne d'un fichier texte

Donc, vous avez un fichier texte comme ceci :

file1
file2
..

Et vous voulez exécuter une commande sur chaque ligne du fichier (par exemple, chmod 644). Comme toutes les choses UNIX, il y a plus d'une façon de faire les choses, mais voici la réponse rapide et grossière :

xargs -0 -n 1 chmod 644 < <(tr \\n \\0 <filelist.txt)

Donc, cela exécutera xargs sur le std. input (filelist.txt).
-n correspond au maximum d'arguments - dans ce cas, nous avons 1 arg. (la liste des fichiers dans le fichier - par ligne).
-0 signifie que les lignes d'entrée se terminent par un caractère nul, pas un espace, pour garder les choses en ordre.
Enfin, nous exécutons tr qui supprime caractères, dans ce cas en supprimant les nouvelles lignes et les espaces.


Linux
  1. Comment tuer la ligne de commande Chromium sur Ssh ?

  2. Comment analyser chaque ligne d'un fichier texte comme argument d'une commande ?

  3. Afficher un fichier tabulaire tel que CSV à partir de la ligne de commande

  4. Exécute la commande pour chaque fichier dans le répertoire courant

  5. Comment remplacer un fichier en jar par une ligne de commande sous Linux ?

Commande Diff sous Linux avec exemples

Copier un fichier dans plusieurs répertoires à partir de la ligne de commande sous Linux

Afficher le contenu d'un fichier dans la ligne de commande Linux

Comment extraire le fichier Tar.xz sur la ligne de commande Linux

Est-il possible avec Gedit ou la ligne de commande de modifier chaque quatrième ligne d'un fichier texte ?

5 commandes pour afficher le contenu d'un fichier en ligne de commande Linux