Sed - Supprimer des lignescontenant une variable d'un fichier

Résolu
joanluc -  
 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
A voir également:

3 réponses

UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158
 
Bonjour !

Un début de solution ici !

De rien.
0
UnGnU Messages postés 1158 Date d'inscription   Statut Contributeur Dernière intervention   158
 
Re-

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

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