我已閱讀以下內容:的Linux替換爲變量包含雙引號
- How Do I Use Variables In A Sed Command
- How can I use variables when doing a sed?
- Sed replace variable in double quotes
我瞭解到,我可以使用sed "s/STRING/$var1/g"
來替換字符串變量的內容。但是,我很難找到如何替換包含雙引號,括號和感嘆號的變量。
然後,希望能夠逃脫報價,我試圖通過sed 's/\"/\\\"/g'
管道我的結果,這給了我另一個錯誤sed: -e expression #1, char 7: unknown command: E'
。我希望能夠逃避有問題的字符,然後做可變更換:sed "s/STRING/$var1/g"
。但是我也無法達到那麼遠。
我想你們可能知道一個更好的方法來用包含引號的變量替換字符串。
FILE1.TXT:
Example test here
<tag>"Hello! [world]" This line sucks!</tag>
End example file
變量:
var1=$(cat file1.txt)
實施例:
echo "STRING" | sed "s/STRING/$var1/g"
希望的輸出:
Example test here
<tag>"Hello! [world]" This line sucks!</tag>
End example file
'sed'不是此替換的正確工具。 – anubhava
@anubhava我明白了。感謝Anubhava的建議。我願意接受任何有效的工作。也會嘗試做更多的研究。編輯問題以反映這一點。 – DomainsFeatured
@batMan是的,這就是主意。保持變量中的數據相同。我想用'$ var1'的內容替換'STRING'。這就是我卡住的地方。這只是一個極簡主義的例子。 – DomainsFeatured