GNU/Linux >> Tutoriels Linux >  >> Linux

ajouter une ligne à un fichier UNIQUEMENT s'il n'est pas déjà dans le fichier

En supposant que vous le vouliez à la fin du fichier :

LINE="nohup java -jar /mnt/fusion/nfs/labStats/LabInfoAutoLog.jar > /dev/null &"
FILE=/etc/rc.d/rc.local
grep -q "$LINE" "$FILE" || echo "$LINE" >> "$FILE"

une option est en deux étapes :

grep -q "yourline" /path/file||sed -i '/..place../ a \the line' file

aussi possible de faire avec awk,

enregistrer toutes les lignes du tableau, lors de l'enregistrement si la ligne a été trouvée, quitter. sinon, ajouter la ligne dans END{} bloquer au bon endroit.

PS Vous n'avez pas indiqué dans le fichier où ajouter cette ligne.


Linux
  1. Comment ajouter des numéros de ligne aux fichiers texte sous Linux

  2. Boîte occupée lire le fichier ligne par ligne ?

  3. Lire un fichier orienté ligne qui ne se termine peut-être pas par une nouvelle ligne ?

  4. dos2unix :commande introuvable

  5. chmod :commande introuvable

Comment lire un fichier ligne par ligne dans Bash

Comment ajouter un fichier d'échange sur Ubuntu 20.04

Comment ajouter une ligne d'en-tête et de fin à un fichier sous Linux

nano :commande introuvable

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

sed :comment remplacer la ligne si elle est trouvée ou ajouter à la fin du fichier si elle n'est pas trouvée ?