Bonjour
Voilà, j'ai un petit problème dans un script ksh.
J'ai une variable $passwd qui contient un hash de mot de passe et je souhaite substituer dans un fichier de type /etc/passwd un autre hash (contenu dans $passwd2) par celui dans la variable $passwd.
J'utilise donc un sed mais le problème est que ces hashs contiennent des caractères genre / , . @ $ * ect ...
Comment faire pour que sed (ou awk, même problème) considère ces caractères comme une chaîne de caractères et n'essaie pas de les interpréter ?
par exemple :
sed -i".bck" -e "s!$passwd2!$passwd!" /var/yp/src/passwd ne marche pas à tous les coups.
Merci d'avance
Edit: J'ai trouvé finalement, en fait déjà j'ai utilisé @ comme délimiteur car il y avait des hashs avec des ! dedans qui faisait planter le script, et j'ai ajouté des sécurités car j'ai remarqué que plusieurs comptes avait des hashs identiques.
sed -i".bck" -e '/^'"$user"':/ s@'"$passwd2"'@'"$passwd"'@' /var/yp/src/passwd
Partager