GNU/Linux >> Tutoriels Linux >  >> Linux

script bash ajoute du texte à la première ligne d'un fichier

Ce sed la commande ajoutera 123 à la fin de la première ligne de votre fichier.

sed ' 1 s/.*/&123/' yourfile.txt

aussi

sed '1 s/$/ 123/' yourfile.txt

Pour ajouter le résultat au même fichier, vous devez utiliser -i bascule :

sed -i ' 1 s/.*/&123/' yourfile.txt

Ceci est une solution pour ajouter "ok" à la première ligne sur /etc/passwd , je pense que vous pouvez l'utiliser dans votre script avec un peu de "réglage" :

$ awk 'NR==1{printf "%s %s\n", $0, "ok"}' /etc/passwd
root:x:0:0:root:/root:/bin/bash ok

Pour modifier un fichier, vous pouvez utiliser ed , l'éditeur standard :

line=' bcm2708.w1_gpio_pin=20'
file=/boot/cmdline.txt
if ! grep -q -x -F -e "$line" <"$file"; then
    ed -s "$file" < <(printf '%s\n' 1 a "$line" . 1,2j w q)
fi

ed commandes :

  • 1 :aller à la ligne 1
  • a :ajouter (cela s'insérera après la ligne courante)
  • Nous sommes en mode insertion et nous insérons l'expansion de $line
  • . :arrêter le mode d'insertion
  • 1,2j joindre les lignes 1 et 2
  • w :écrire
  • q :quitter

Linux
  1. Un script Bash peut-il être accroché à un fichier ?

  2. Comment insérer du texte avant la première ligne d'un fichier ?

  3. Supprimer efficacement les premières lignes d'un fichier texte ?

  4. Ajouter le texte correspondant à la ligne ?

  5. Supprimez les cinq premiers caractères de n'importe quelle ligne d'un fichier texte sous Linux avec sed

Comment lire un fichier ligne par ligne dans Bash

Bash :ajouter au fichier

Remplacement de chaîne dans Bash

35 exemples de scripts bash

Script Bash vers Center Fortune/texte depuis Stdin/pipe ?

texte d'écho avec une nouvelle ligne dans bash