Commande SED : suppresion d'une variable dans un fichier KO [RESOLU] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 20-10-2008 à 12:57:31
Je ne vois pas comment ton truc peut marcher avec un $dhcp_fin entre simple quotes.
Quoi qu'il en soit ce n'est clairement pas la bonne façon de faire. Pourquoi tu ne fait pas simplement un grep -vF "${$addr%;}" $rep/testfichierbis > $rep/testfichier ? En plus c'est plus sûr, parce que là pour sed les points de ton address IP peuvent représenter n'importe quel caractère.
Marsh Posté le 20-10-2008 à 14:36:31
La ligne avec $dhcp_fin fonctionne très bien, je n'ai pas eu de problème pendant tous les tests que j'ai effectué.
Je viens de me lancer dans le script depuis deux semaines, donc c'est la seule façon que j'ai trouvé pour le moment.
La ligne que tu me donnes permet de faire de la suppression ? En fait, je ne la comprend pas trop ? que signifie aussi le "%;" ?
Par avance merci.
Marsh Posté le 20-10-2008 à 15:03:28
Y'a un $ dans mon truc, il faut lire ${addr%;}. C'est comme $addr, sauf que le ";" final est supprimé. ${var%pattern} supprime tout ce qui match "pattern" à la fin de "var".
Oui, ma ligne remplace tes deux lignes.
Edit : en fait avec le coup du $dhcp_fin ça marche parce que tu n'as pas de variable qui s'appelle dhcp_fin dans ton awk, donc pour lui c'est comme $0. Mais il faudrait soit mettre $0, soit rien du tout : gsub(/;/, " " )
Marsh Posté le 20-10-2008 à 15:11:09
Un très grand merci à toi pour ton aide.
Et en plus le code est moins chargé.
Marsh Posté le 06-11-2008 à 20:52:04
C'est en Anglais, mais je vous recommande chaudement cette lecture pour les "parameter expansion" http://wooledge.org:8000/BashFAQ/073
( c'est cette feature qui est utilisée )
Marsh Posté le 20-10-2008 à 12:38:40
Bonjour,
Je développe actuellement un script pour optimiser le temps de traitement des demandes DNS-DHCP que l'onpeut m'effectuer.
Mon problème se situe au nibveau de la commande SED. En fait, j'ai un fichier contenant une liste d'adresse IP et je souhaite supprimer dans ce fichier une adresse IP bien précise que je récupère dans une variable.
Voic mon code, mon problème se situe au niveau de la ligne utilisant SED :
Le problème est que la suppression de l'IP ne fonctionne pas. Pourtant quand je fais un echo de ma variable "addr", il m'affiche bien l'IP (192.168.138.200 par exemple).
J'ai tester en mettant l'adresse IP en dur dans le code et çà fonctionne mais pas avec la variable.
Je pense que çà doit venir du dollar devant la variable qu'il doit interpréter comme un caractère spécial ?
Avez vous une idée ?
Par avance merci,
Cosca
Message édité par cosca44 le 20-10-2008 à 15:50:48