用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