如何在模式匹配后添加文本

问题描述 投票:0回答:1

如何使用

server=”I am a teapot"
<Connector
之后和
Port=...
之前添加参数扩展
sed

添加前:

<Connector Port=8080

添加后:

<Connector server=”I am a teapot" Port=8080
linux sed hardening
1个回答
0
投票

sed
的简单替换形式使用两个捕获组来捕获空格之前和之后的文本,然后在两个反向引用之间插入新文本(例如
\1
\2
)就可以了,例如

sed -E 's/^([^[:space:]]+[[:space:]])(.*$)/\1server="I am a teapot" \2/'

示例使用/输出

您只需将信息通过管道传输到

sed
即可查看其工作情况,

echo "<Connector Port=8080" | sed -E 's/^([^[:space:]]+[[:space:]])(.*$)/\1server="I am a teapot" \2/'
<Connector server="I am a teapot" Port=8080

如果您的

sed
不支持
-E
(ERE - 扩展正则表达式),您也可以使用基本正则表达式(BRE)。 (您只需省略括号并将
+
替换为
*
)如果您还有其他问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.