为什么sed会删除示例中的字符?
为什么sed会删除上一个示例中的字符“a”?这是因为为什么sed会删除示例中的字符?,sed,replace,Sed,Replace,为什么sed会删除上一个示例中的字符“a”?这是因为$c是一个空字符串,当sed被传递一个带有空模式的后续s命令时,会使用前一个命令,在这种情况下,$a,即a 所以 这里, a替换为ab首先替换为s/a/ab/(ac变成abc) a与s/a/一起删除(abc变为bc) 见文件,请参阅: 如果RE为空(即未指定模式),则sed的行为应与指定应用的最后一个命令(作为地址或作为替代命令的一部分)中的最后一个RE相同 a=a b=ab c='' d='' echo ac | sed "s/
$c
是一个空字符串,当sed
被传递一个带有空模式的后续s
命令时,会使用前一个命令,在这种情况下,$a
,即a
所以
这里,
替换为a
首先替换为ab
(s/a/ab/
变成ac
)abc
与a
一起删除(s/a/
变为abc
)bc
a=a
b=ab
c=''
d=''
echo ac | sed "s/$a/$b/;"
abc
echo ac | sed "s/$a/$b/; s/$c/$d/"
bc
echo ac | \
sed "s/$a/$b/; s/$c/$d/"
# a ab a