簡體   English   中英

sed命令中的正則表達式組

[英]Regex group in sed command

對於以下幾行

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 -->/'

這就是你想要的:

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-->

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM