2017-10-11 3 views
-2

Pour une raison quelconque, la réponse dans le message ci-dessous ne fonctionne pas pour moi. Des pensées?
how to use sed to replace a string in a file with a shell variableImpossible d'utiliser sed pour remplacer le texte par la variable shell

Je suis en cours d'exécution CentOS 6,5

`NEW="new value" 
cat myfile.txt | sed -e 's/old/${NEW}' <-- just replaces 'old' with '${NEW}' 
cat myfile.txt | sed -e 's/old/$NEW' <-- just replaces 'old' with '$NEW' 
cat myfile.txt | sed -e "s/old/${NEW}" <-- gives the error: unknown option to `s' 
+2

Voir: [Différence entre guillemets simples et doubles dans bash] (http://stackoverflow.com/q/6697753/3776858) – Cyrus

+1

Aussi sed prend filen ames comme args, pas besoin de chat. Aussi 's ///' nécessite trois délimiteurs – 123

+0

Merci. J'utilisais cat juste comme un moyen de tester ceci sans modifier le fichier. – Adoyt

Répondre

0

essayez de prendre le « s au large de la sed par exemple

$ new=N 
$ cat > j 
one 
two 
three 
$ sed -e "s/one/${new}/" j 
N 
two 
three 

pour une plus complète réponse essayer this answer

+0

Merci! Envelopper la variable shell dans les guillemets doubles travaillés! Comme ça: sed -e 's/old /' "$ NOUVEAU" '/' – Adoyt