我正在尝试使用SED替换某些功能。 假设我有一些名为
的函数AAAABBBB()
我需要将其更改为
CCCC(nBBBB)
%BBBB< - 这可以是任何legnth,但AAAA,CCCC,n是固定长度。
如何使用SED执行此操作?甚至使用其他方法?
由于
答案 0 :(得分:2)
这是一个快速的:
echo "AAAABBBB()" | sed -e 's/AAAA\(.\+\)()/CCCC(n\1)/'
CCCC(nBBBB)
echo "AAAAFF()" | sed -e 's/AAAA\(.\+\)()/CCCC(n\1)/'
CCCC(nFF)
这个想法很简单:匹配AAAA字符串,然后在反向引用中捕获B(其中一个或多个)。现在用几个C和backref替换它。另一封信也是如此。
顺便提一下,你最好还有一些具体的例子。否则,我们可能无法在您想要的替换上点击完全正确的。
答案 1 :(得分:0)
sed -r 's/^A+([^A]+)\(\)/CCCC(n\1)/'
答案 2 :(得分:0)
你没有提供足够的信息来制作一个非常有选择性的模式(假设有不想要重命名的功能),但如果你想重命名这样的一切:
sed -e 's/^\(....\)\(.*\)()/\1(n\2)/'
在行的开头(AAAA)变为4个字符,然后将任何长度BBBB变为AAAA(nBBBB)。我不确定你希望从哪里获得CCCC?
答案 3 :(得分:0)
sed 's/AAAA\([^(]*\)()/CCCC(n\1)/'