簡體   English   中英

Linux 查找和替換:如何轉義字符串中的單引號?

[英]Linux find and replace: how to escape single quotes in strings?

在這方面完全是新手,所以這里是行不通的:

find . -type f -exec sed -i 's/\$_SESSION['valOne']"/\$valTwo,"/g' {} +

雖然它應該遞歸替換,但在它經過的所有目錄中:

$_SESSION['valOne'] into just: $valTwo

我已經這樣做了很多次,但似乎引號對我來說太混亂了。 非常感謝這里的任何幫助。

如果我了解您正在嘗試做什么(字面替換),那么您需要單引號字符串,以便 shell 不會嘗試解釋其內容,然后對字符串中的每個單引號使用'\\''並轉義任何BRE 元字符(即[]在您的情況下):

find . -type f -exec sed -i 's/$_SESSION\['\''valOne'\''\]"/$valTwo,"/g' {} +

請嘗試如下。 更改' -> "並使用反斜杠轉義。

例子:

 find . -type f -exec sed -i "s/\$_SESSION\['valOne'\]/\$valTwo/g" {} +

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM