Pb avec awk pour modifier une chaîne text
Résolu
jerem1985
Messages postés
65
Date d'inscription
Statut
Membre
Dernière intervention
-
jerem1985 Messages postés 65 Date d'inscription Statut Membre Dernière intervention -
jerem1985 Messages postés 65 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon probleme j'ai un fichier texte, ce fichier text doit être incrémenter d'une variable. En me lisant je me rend compte que c'est pas claire alors voila ce que sa donne
mon fichier text :
define {
name srv-lin
members localhost
}
le but et d'avoir un script qui utilise awk pour ajouter un nom à la suite de localhost, ce nom est compris dans une variable appeler $name
apres le traitement par le scripte le fichier doit etre ainsi:
mon fichier text apres script
define {
name srv-lin
members localhost,machine1
}
merci d'avance
Voici mon probleme j'ai un fichier texte, ce fichier text doit être incrémenter d'une variable. En me lisant je me rend compte que c'est pas claire alors voila ce que sa donne
mon fichier text :
define {
name srv-lin
members localhost
}
le but et d'avoir un script qui utilise awk pour ajouter un nom à la suite de localhost, ce nom est compris dans une variable appeler $name
apres le traitement par le scripte le fichier doit etre ainsi:
mon fichier text apres script
define {
name srv-lin
members localhost,machine1
}
merci d'avance
A voir également:
- Pb avec awk pour modifier une chaîne text
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Chaine tnt gratuite sur mobile - Guide
- Vous avez besoin d'une autorisation de la part de système pour modifier ce dossier - Guide
2 réponses
Salut,
Je te propose de faire ça avec "sed" plutôt qu'avec "awk" :
Je te propose de faire ça avec "sed" plutôt qu'avec "awk" :
jp@MDK:~/tmpfs ssh$ cat fichier.txt define { name srv-lin members localhost } jp@MDK:~/tmpfs ssh$ var="machine1" jp@MDK:~/tmpfs ssh$ echo $var machine1 jp@MDK:~/tmpfs ssh$ sed "/localhost/ s/$/,$var/" fichier.txt define { name srv-lin members localhost,machine1 } jp@MDK:~/tmpfs ssh$ sed -i.bak "/localhost/ s/$/,$var/" fichier.txt jp@MDK:~/tmpfs ssh$ cat fichier.txt define { name srv-lin members localhost,machine1 } jp@MDK:~/tmpfs ssh$;-))
bon ben j'ai trouver tous seul grace à ton tuto
http://www.commentcamarche.net/faq/sujet 9559 sed introduction a sed part ii
ma commande ressemble à
sed -i fichier.txt -e "s/'$modif'/'modif2'/" hostgroup
merci beaucoup pour ton aide jipicy
http://www.commentcamarche.net/faq/sujet 9559 sed introduction a sed part ii
ma commande ressemble à
sed -i fichier.txt -e "s/'$modif'/'modif2'/" hostgroup
merci beaucoup pour ton aide jipicy
effectivement avec sed sa marche, cependant pour le mettre dans un script je doit utiliser l'option -e
pour etre plus précis dans ce que j'essaye de faire je te montre mon script qui doit modifier le fichier.txt
mon script.sh
modif=`cat fichier.txt | grep $1 | cut -d " " -f18` #$1 et une variable envoyer dans le script par une page php et qui
corespond a localhost
modif2=machine1
#avec le sed l'ajoute ,$modif2 derriere 'members localhost' de mon fichier.txt
cependant je n'arrive pas à trouver la bonne syntaxe et le man de sed et archi long
encore merci
sed -i fichier.txt -e "s/localhost/machine1" fichier.txt
maintenant si tu pouvait juste me dire comment je pourrais remplacer localhost et machine1 par des variable de mon script
merci en tous cas pour ton aide