假设我们有以下作为标准输入(例如)
Life is temporary
我想用 sed 替换它
Life is permanent
与某处沿线的命令
sed 's/Life<%XY=.*>temporary/Life%XYpermanent'
当然,我知道上面不是一个有效的命令,它只是作为一个例子。我想将.*
匹配的任何内容存储到一个变量中,并且我想在替换字符串中调用该变量。
假设我们有以下作为标准输入(例如)
Life is temporary
我想用 sed 替换它
Life is permanent
与某处沿线的命令
sed 's/Life<%XY=.*>temporary/Life%XYpermanent'
当然,我知道上面不是一个有效的命令,它只是作为一个例子。我想将.*
匹配的任何内容存储到一个变量中,并且我想在替换字符串中调用该变量。
这里
\1
指的是模式中的第一对括号。在这种情况下,它是唯一的一对,但通常您可以拥有更多对,然后您可以使用\2
等\3
,直到\9
.括号被转义。没有
\
它们,它们将被逐字理解并且\1
行不通。如果您使用sed -E
then 它将被颠倒:(
将是特殊的并且\(
将表示文字(
(请注意,通常这不是唯一的区别-E
):这种变化使我们的
sed
代码对人类来说更具可读性。