0
我試圖替換文件中的字符串。我必須使用一個變量,因爲我必須在很多行中執行此操作。我如何逃避反斜槓?Linux sed命令 - 使用帶反斜槓的變量
的text.txt:
1234567#Hello World#Hello I\u0027m Scott
腳本:
#!/bin/bash
FOLDERID=`cat text.txt | cut -d# -f1` # example: 12345
oldstring=`cat text.txt | cut -d# -f2` # example: "Hello World"
newstring=`cat text.txt | cut -d# -f3` # example: "Hello I\u0027m Scott"
sed -i "s/${oldstring}/${newstring}/g" $FOLDERID/myfile.txt
貓myfile.txt的sed的後
Hello I0027m Scott
我怎能逃脫反斜線?我只知道如何逃生斜線這將工作,如:
newstring=Hello I/u0027m Scott
newstring=${newstring//\//\\\/}
echo ${newstring} # => Hello I\/u0027m Scott
你可以添加一個更清晰的例子嗎?最好按以下順序:1)修改前的myfile.txt的內容2)外部文件的內容3)包含要替換的字符串的變量4)更改後的'myfile.txt'的期望輸出 – Sundeep
myfile.txt包含文本+舊字符串 – professorswag123
只是爲了澄清,'\ u0027'是六個字符'''''''''''''0''0''2''7,或者它是Unicode字符,十六進制值爲0x27 '(即''')?我假設前者,但想檢查以防萬一。 **另外**,請參閱[此問題](https://stackoverflow.com/q/29613304/2877364)。 – cxw