Changement d'occurrences dans un fichier .netrc sous aix.
Fermémamiemando Messages postés 33549 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mars 2025 - 20 févr. 2023 à 18:45
- Changement d'occurrences dans un fichier .netrc sous aix.
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Changement dns - Guide
5 réponses
Modifié le 15 févr. 2023 à 14:23
Bonjour,
Je n'ai pas compris ton problème ni ta question. Peux-tu réécrire ton message avec des phrases plus courtes et plus claires ? Quelles occurrences veux-tu modifier avec sed et awk ? Peux-tu donner un exemple en montrant à quoi ça rassemblerait avant et après changement ?
Si j'ai bien compris tu veux modifier
machine PROD_DB_VIR login admdb password admdb@2023
en :
machine PROD_DB_VIR login mon_login password mon_mot_de_passe
Si oui :
sed -i "s/password [^ ]*/password my_password/" ~/.netrc sed -i "s/login [^ ]*/login my_login/" ~/.netrc
Bonne chance
bonjour
Merci pour votre réponse.
Finalement je veux modifier juste le nom de la machine dans le fichier .netrc de mes utilisateurs /home/$USER/.netrc: avec un script sous aix avec sed ou awk
Origine site Production:
machine PROD_DB_VIR login admdb password admdb@2023
besoin site Backup:
machine BACK_DB_VIR login admdb password admdb@2023
Merci d'avance.
Modifié le 15 févr. 2023 à 16:38
Bonjour,
Merci pour ces précisions. Dans ce cas, il te suffit de repartir des commandes que je t'ai déjà données :
sed -i "s/PROD_DB_VIR/BACK_DB_VIR/" ~/.netrc
Ceci modifie le .netrc de l'utilisateur courant.
Si tu veux itérer sur les .netrc de plusieurs utilisateurs dont le dossier est dans /home, écris une boucle for.
for f in $(find /home -maxdepth 2 -type f | grep /.netrc$); do sed -i 's/PROD_DB_VIR/BACK_DB_VIR/g' "$f" done
Pour rappel tu peux aussi trouver les dossiers personnels de chaque utilisateur local dans /etc/passwd.
Bonne chance
Re-bonjour,
l'exécution du script me renvoi l'erreur suivante :
find: 0652-017 -maxdepth is not a valid option.
merci !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 20 févr. 2023 à 18:46
Bonjour,
Commence par t'assurer que chaque bout de commande impliqué retourne ce qu'il faut :
find /home -maxdepth 2 -type f find /home -maxdepth 2 -type f | grep /.netrc$
Si tu n'es pas sous bash, c'est peut-être dû à l'opérateur $( ... ) qu'on peut remplacer par `...` :
for f in `find /home -maxdepth 2 -type f | grep /.netrc$`; do sed -i 's/PROD_DB_VIR/BACK_DB_VIR/g' "$f" done
Bonne chance