2016-08-01 71 views
-1
echo'</ns:epsIndividualDefaultContextId<ns:epsIndividualContextId>100</ns:epsIndividualContextId>' | sed's/<\/ns:epsIndividualContextId>/<ns:epsIndividualContextId<\/ns:epsIndividualContextId>/' 

結果:匹配模板2次替換時如何插入sed?

</ns:epsIndividualDefaultContextId><ns:epsIndividualContextId>100<ns:epsIndividualContextId></ns:epsIndividualContextId> 

如何更換一定的時間?例2次。

要出口橫空出世:

</ns:epsIndividualDefaultContextId><ns:epsIndividualContextId>100<ns:epsIndividualContextId></ns:epsIndividualContextId><ns:epsIndividualContextId></ns:epsIndividualContextId> 
+0

我聽說,在一些版本中,你可以做'S /模式/替換/ fromOccurence,toOccurence',但不在我的GNU sed上工作。一個簡單的方法是將第一個事件替換兩次,即'echo $ data | sed's/pattern/replace'| sed's/pattern/replace /'' – Aaron

+1

@Aaron你可以使用sed -e EXPR -e EXPR而不是管道兩條命令。 – Aif

+0

請將預期輸出格式化爲樣本輸入整齊格式 –

回答

-3

您可以使用:

echo whole_string | sed "s/string_to_find/string_to_insert/g" 

這將找到string_to_find多次,它可以在whole_string被發現。

+0

閱讀問題.. –

+0

如果我需要添加100次? 100個處方模式?) –

-1

在sed語句的末尾使用'g'來替換所有匹配的發生。但是要多次替換相同的字符串,你必須使用sed,否。時間如下。

兩次更換

echo'</ns:epsIndividualDefaultContextId<ns:epsIndividualContextId>100</ns:epsIndividualContextId>' | sed's/<\/ns:epsIndividualContextId>/<ns:epsIndividualContextId<\/ns:epsIndividualContextId>/' | sed's/<\/ns:epsIndividualContextId>/<ns:epsIndividualContextId<\/ns:epsIndividualContextId>/' 

希望這可能工作

+0

如果我需要添加100次? 100處方模式?) –

+0

然後使用awk代替sed – Athar

+0

並且可以使用AWK –