sed命令中的正则表达式组

Cia*_*tin 2 regex sed

对于以下行

DEV1 ABCDEFGHI
DEV2 ABCDEFGHI
QA1 ABCDEFGHI
QA2 ABCDEFGHI
Run Code Online (Sandbox Code Playgroud)

我如何将其替换为以下内容:

<!-- DEV1 ABCDEFGHI -->
<!-- DEV2 ABCDEFGHI -->
<!-- QA1 ABCDEFGHI -->
<!-- QA2 ABCDEFGHI -->
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止,但它不适用于所有行:

echo $line | sed -E 's/(QA.)|(DEV.)(.*)/<!-- \1\2\3 -->/'
Run Code Online (Sandbox Code Playgroud)

Jua*_*doy 5

这就是你想要的:

echo "$line" | sed -E 's/(QA.|DEV.)(.*)/<!-- \1\2 -->/' 
Run Code Online (Sandbox Code Playgroud)

第一组可以通过前缀 QA或者DEV ,使用| 操作者.

一个几个 备选方案:

$ echo "QA2 ABCDEFGHI"|sed -E 's/(.*)/<!-- \1 -->/'
<!-- QA2 ABCDEFGHI -->

$ echo "QA2 ABCDEFGHI"|awk '{print "<!-- "$0"-->"}'
<!-- QA2 ABCDEFGHI-->
Run Code Online (Sandbox Code Playgroud)