Sed - Supprimer des lignescontenant une variable d'un fichier [Résolu/Fermé]

Signaler
-
 joanluc -
Adishatz mondè

Je veux réaliser un script qui permette de supprimer du fichier .ssh/known_hosts les lignes contenant le nom des serveurs qui ont été mis à jour et dont la clé SSH a changé.

Mon problème c'est que quand j'utilise sed avec le nom de la machine ça marche mais si j'utilise une variable de bash ça ne marche pas


mv ~/.ssh/known_hosts ~/.ssh/known_hosts.old
sed '/$nom_machine/d' ~/.ssh/known_hosts.old > ~/.ssh/known_hosts


J'ai aussi essayé en échappant le $ dans l'expression mais ça ne marche pas non plus
sed '/\$nom_machine/d' ~/.ssh/known_hosts.old > ~/.ssh/known_hosts

Merci hera

3 réponses

Messages postés
1156
Date d'inscription
lundi 2 mai 2016
Statut
Contributeur
Dernière intervention
22 décembre 2020
150
Bonjour !

Un début de solution ici !

De rien.
Messages postés
1156
Date d'inscription
lundi 2 mai 2016
Statut
Contributeur
Dernière intervention
22 décembre 2020
150
Re-

Voir dans la FAQ Le remplacement de variables
Pour utiliser sed avec une variable dans un script bash il faut effectivement échapper la variable

sed '/'$nomServ'/d' ~/.ssh/known_hosts