3 votes

Exécution de la commande Sed

Quand je lance la commande

sed -e "s/$1/@root@The-Three-Little-Pigs-Siri-Proxy/" -i gen_certs.sh

Je reçois l'erreur suivante. J'essaie de remplacer le texte $1 par l'autre ci-dessous dans le même fichier, sans créer un nouveau fichier, mais en modifiant le fichier actuel.

sed: -e expression #1, char 0: no previous regular expression

Avez-vous une idée de la cause de cette erreur et de la façon de la corriger ?

Système d'exploitation : Ubuntu 10.10 32 bit

3voto

kev Points 41855

$1 se développera en une chaîne nulle( '' ) s'il s'agit d'une chaîne de caractères à double-qoutée.
Vous pouvez utiliser des guillemets simples pour conserver la valeur littérale de l'élément $1 :

sed -e 's/$1/@root@The-Three-Little-Pigs-Siri-Proxy/' -i gen_certs.sh

1voto

Alexander Pavlov Points 16338

Vous devez échapper à ce schéma : sed -e "s/\$1/@root@The-Three-Little-Pigs-Siri-Proxy/" -i gen_certs.sh puisque $1 désigne une référence arrière dans sed (en supposant que vous voulez remplacer la chaîne de caractères $1 dans votre entrée, non ?)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X