sed中的转义字符
如何在sed中避开引号。我已经尝试使用反斜杠,但是sed继续尝试匹配我试图包含在字符串中的'sed中的转义字符,sed,Sed,如何在sed中避开引号。我已经尝试使用反斜杠,但是sed继续尝试匹配我试图包含在字符串中的' sed -i 's/vclist_2d_.*/'$X'\'/g' 1759_input.py 这与其说是一个sed问题,不如说是一个shell问题。要获得传递给命令的单引号(sed,在本例中),它需要位于双引号字符串中,或者必须在单引号字符串之外使用\'。因此,对于单引号字符串,必须使用以下顺序: “…”\“…” 省略号后的第一个“完成当前单引号字符串 \'在参数中嵌入一个引号 “恢复单个带引号的字
sed -i 's/vclist_2d_.*/'$X'\'/g' 1759_input.py
这与其说是一个sed问题,不如说是一个shell问题。要获得传递给命令的单引号(
sed
,在本例中),它需要位于双引号字符串中,或者必须在单引号字符串之外使用\'
。因此,对于单引号字符串,必须使用以下顺序:
“…”\“…”
- 省略号后的第一个
完成当前单引号字符串“
在参数中嵌入一个引号\'
恢复单个带引号的字符串“
sed -i 's/vclist_2d_.*/'"$X"\''/g' 1759_input.py
它用$X
中的值替换vclist\u 2d.*
,后跟一个单引号,全局(尽管全局是无意义的,因为匹配中的*
无论如何都会吃掉第一个匹配中的剩余行)
在这种情况下,您可以将其简化为:
sed -i "s/vclist_2d_.*/$X'/" 1759_input.py
$X
中的值不得包含任何斜杠。对于替换中的'
,使用'\'
替换文本'
范例
sed 's/vclist_2d_.*/'$X''\''/g' 1759_input.py
$X是一个变量,我将其定义为for循环的一部分。基本上,我正试图用它将文本
'vclist\u 2d\u 1.txt'
更改为'vclist\u 2d\u n.txt'
,其中n的范围为1到10000。
X="B"; echo "abc" | sed 's/b/'"$X'"'/'
aB'c