GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je ajouter une chaîne au début de chaque fichier dans un dossier en bash ?

Et vous pouvez le faire en utilisant sed dans 1 seule commande aussi

for f in *; do
  sed -i.bak '1i\
  foo-bar
  ' ${f}
done

Ceci fera cela. Vous pourriez le rendre plus efficace si vous faites le même texte pour chaque fichier...

for f in *; do 
  echo "whatever" > tmpfile
  cat $f >> tmpfile
  mv tmpfile $f
done

Vous pouvez le faire comme ça sans boucle et cat

sed -i '1i whatever' *

si vous voulez sauvegarder vos fichiers, utilisez -i.bak

Ou en utilisant awk

awk 'FNR==1{$0="whatever\n"$0;}{print $0>FILENAME}' *

Linux
  1. Comment ajouter une nouvelle ligne à la fin d'un fichier ?

  2. Comment puis-je trouver toutes les extensions de fichiers distinctes dans une hiérarchie de dossiers ?

  3. Dans Bash, comment ajouter une chaîne après chaque ligne dans un fichier ?

  4. Comment puis-je créer un fichier dans chaque dossier ?

  5. Comment lister la taille de chaque fichier et répertoire et trier par taille décroissante dans Bash ?

Remplacement de chaîne dans Bash

Comment ajouter du texte au début du fichier sous Linux

Comment puis-je changer le nom de plusieurs fichiers dans un dossier ?

Ajouter une chaîne de préfixe au début de chaque ligne

Comment puis-je ajouter un pied de page au bas de chaque page d'un fichier postscript ou pdf sous Linux?

Comment ajouter une chaîne de date à chaque ligne d'un fichier journal écrit en continu