假設我有這樣的如何用Sed替換一個字符串?
<start><a></a><a></a><a></a></start>
我想要替換裏面<start></start>
值這樣
<start><ab></ab><ab></ab><ab></ab><more></more><vale></value></start>
如何做到這一點使用桑達一個字符串?
假設我有這樣的如何用Sed替換一個字符串?
<start><a></a><a></a><a></a></start>
我想要替換裏面<start></start>
值這樣
<start><ab></ab><ab></ab><ab></ab><more></more><vale></value></start>
如何做到這一點使用桑達一個字符串?
試試這個:
sed '[email protected]<start>.*</start>@<start><ab></ab><ab></ab><ab></ab></start>@' file
sed 's/(\<\/?)a\>/\1ab\>/g' yourfile
,儘管這會得到<a></a>
這是外界<start>
以及...
我得到GNU這一行的sed:
sed -r 's#(<start>)(.*)(</start>)#echo "\1"$(echo "\2"\|sed "s:a>:ab>:g")"\3"#ge'
參見示例:
kent$ echo "<start><a></a><a></a><a></a><foo></foo><bar></bar></start>"|sed -r 's#(<start>)(.*)(</start>)#echo "\1"$(echo "\2"\|sed "s:a>:ab>:g")"\3"#ge'
<start><ab></ab><ab></ab><ab></ab><foo></foo><bar></bar></start>
注
這將取代它與a
結束<start>
S之間的標籤。這對你的例子有效。但如果你有<aaa></aaa>
:
你可以這樣做:(我分解成線更好的閱讀)
sed -r 's#(<start>)(.*)(</start>)
#echo "\1"$(echo "\2"\|sed "s:<a>:<ab>:g;s:</a>:</ab>:g")"\3"
#ge'
例如
kent$ echo "<start><a></a><a></a><a></a><aaa></aaa><aba></aba></start>" \
|sed -r 's#(<start>)(.*)(</start>)#echo "\1"$(echo "\2"\|sed "s:<a>:<ab>:g;s:</a>:</ab>:g")"\3"#ge'
<start><ab></ab><ab></ab><ab></ab><aaa></aaa><aba></aba></start>
grep -rl'abc'a.txt | xargs的SED -i 'S/ABC/DEF/G'
不僅**'外'**而且標籤,如' 或 ...' –
Kent
2013-05-06 23:12:17
我想我固定的,但反向引用不是我通常使用的,所以可能是錯誤的。 – PaulProgrammer 2013-05-07 14:43:43
如果您不確定,請將其明確地寫入答案。 – 2013-05-07 14:47:10