Pages : 1
#1 Le 24/09/2015, à 09:46
- Boombastick
Mauvaise syntaxe sed ?
Salut les basheux !
Dans un script, j'ai besoin d'insérer à la place de la ligne commençant par :
#KILL_ROUTE=
la ligne de code suivante :
KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"
Du coup j'utilise sed de la façon suivante :
sed -i "s/^#KILL_ROUTE=\"\/sbin\/iptables -I INPUT -s $TARGET$ -j DROP\".*$/KILL_ROUTE=\"\/sbin\/iptables -I INPUT -s $TARGET$ -j DROP\"" /etc/portsentry/portsentry.conf
Pourtant sed me notifie une erreur, j'ai beau chercher partout je ne vois pas où est mon erreur
Hors ligne
#2 Le 24/09/2015, à 10:13
- pingouinux
Re : Mauvaise syntaxe sed ?
Bonjour,
Essaye
sed -i 's@^#KILL_ROUTE=.*@KILL_ROUTE="/sbin/iptables -I INPUT -s $TARGET$ -j DROP"@' fichier
Hors ligne
#3 Le 24/09/2015, à 10:21
- nany
Re : Mauvaise syntaxe sed ?
Bonjour,
l’erreur ne serait-elle pas commande `s' inachevée ?
En effet la commande n’est pas fermée, il manque un slash.
De plus, il il faut également échapper les symboles $ sinon sed va rechercher une variable qui n’existe pas et ne va donc pas trouver l’expression.
sed -i "s/^#KILL_ROUTE=\"\/sbin\/iptables -I INPUT -s \$TARGET\$ -j DROP\".*$/KILL_ROUTE=\"\/sbin\/iptables -I INPUT -s \$TARGET\$ -j DROP\"/" /etc/portsentry/portsentry.conf
Mais comme tu dis que tu veux remplacer la ligne « commençant par », il y a plus simple :
sed -i "s/^#KILL_ROUTE=.*$/KILL_ROUTE=\"\/sbin\/iptables -I INPUT -s \$TARGET\$ -j DROP\"/" /etc/portsentry/portsentry.conf
EDIT : grillé une fois de plus par pingouinux (l’homme qui tire des lignes de commande plus vite que son ombre).
À ma décharge : j’ai pris le temps d’expliquer.
Dernière modification par nany (Le 24/09/2015, à 10:46)
Hors ligne
#4 Le 24/09/2015, à 10:32
- pingouinux
Re : Mauvaise syntaxe sed ?
j’ai pris le temps d’expliquer
C'est vrai, j'aurais dû le faire…
et en plus il n’a pas échappé les dollars donc le remplacement ne sera pas complet.
Que nenni, nany ! Mon expression est encadrée par ' ' et non " ".
Hors ligne
#5 Le 24/09/2015, à 10:44
- nany
Re : Mauvaise syntaxe sed ?
Oui, j’ai vu après coup et j’ai ré-édité.
EDIT : sauf qu’une erreur 502 a fait que mon second edit n’avais pas été pris en compte. Cette fois-ci, c’est corrigé.
Dernière modification par nany (Le 24/09/2015, à 10:48)
Hors ligne
#6 Le 24/09/2015, à 11:16
- pingouinux
Re : Mauvaise syntaxe sed ?
[HS]C'est vrai que depuis hier, avec cette foutue Erreur 502, on ne sait jamais si l'envoi a été pris en compte.[/HS]
Hors ligne