sed命令中的正则表达式组

时间:2015-11-20 10:35:10

标签: regex sed

以下行

DEV1 ABCDEFGHI
DEV2 ABCDEFGHI
QA1 ABCDEFGHI
QA2 ABCDEFGHI

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

<!-- DEV1 ABCDEFGHI -->
<!-- DEV2 ABCDEFGHI -->
<!-- QA1 ABCDEFGHI -->
<!-- QA2 ABCDEFGHI -->

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

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

1 个答案:

答案 0 :(得分:5)

这就是你想要的:

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

第一组可以QADEV作为前缀 ,使用| 运算符。

少数 替代方案

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

$ echo "QA2 ABCDEFGHI"|awk '{print "<!-- "$0"-->"}'
<!-- QA2 ABCDEFGHI-->
相关问题