我想用SED替換某些函數。 讓說,我有一些被命名的功能,用SED替換字符串
AAAABBBB()
,我需要改變成
CCCC(nBBBB)
%BBBB <這一點 - 這可能是任何第三方,但AAAA,CCCC,n是固定長度。
我如何使用SED做到這一點?甚至使用其他方法?
感謝
我想用SED替換某些函數。 讓說,我有一些被命名的功能,用SED替換字符串
AAAABBBB()
,我需要改變成
CCCC(nBBBB)
%BBBB <這一點 - 這可能是任何第三方,但AAAA,CCCC,n是固定長度。
我如何使用SED做到這一點?甚至使用其他方法?
感謝
這裏是一個快速:
echo "AAAABBBB()" | sed -e 's/AAAA\(.\+\)()/CCCC(n\1)/'
CCCC(nBBBB)
echo "AAAAFF()" | sed -e 's/AAAA\(.\+\)()/CCCC(n\1)/'
CCCC(nFF)
的想法很簡單:匹配AAAA字符串,然後捕獲了B的一個反向引用(1或更多的人) 。現在用幾個C和backref替換它。另一封信也一樣。
順便說一句,你最好用一些具體的例子。否則,我們可能不會按完全正確您想要的替換。
你不給足夠的信息來做出一個非常有選擇性的模式(假設有功能,您不要重命名),但如果你想重命名的一切那樣:
sed -e 's/^\(....\)\(.*\)()/\1(n\2)/'
那在該行的開頭(AAAA)變成4個字符,隨後是任意長度的BBBB變成AAAA(nBBBB)。我不確定你希望從哪裏獲得CCCC?
sed 's/AAAA\([^(]*\)()/CCCC(n\1)/'
我不明白你想要完全替換。你能舉一些例子嗎? – 2010-12-10 02:50:08