2017-05-10 13 views
0

Ich möchte String in [[ Mystring ]] Daten zu MyData ersetzen.Suchen und Ersetzen "[[Mytext]]" Verwenden von Bash-Shell SED

pattern='[[ Mystring ]]' 
replacement='MyData' 
sed -i 's/pattern/replacement/g' Myfile.txt 

Was ist falsch mit dem obigen Code? Wie man Daten innerhalb [[]] sucht?

+0

Nehmen Sie bei https://regex101.com/ einen Blick zu entkommen. Sie benötigen doppelte Anführungszeichen für den Befehl 'sed'. – codeforester

+0

Willst du '[[Mystring]]' -> 'MyData', oder willst du [[Mystring]]' -> '[[MyData]]' '? –

Antwort

2

Es sollte wie sein:

pattern='\[\[ Mystring \]\]' 
replacement='MyData' 
sed -i "s/$pattern/$replacement/g" Myfile.txt 
0

Sie die [

sed -i 's/\[\[\s*Mystring\s*\]\]/foo/g' text.txt 
Verwandte Themen