使用SED替换字符串

时间:2010-12-10 02:45:48

标签: linux string sed

我正在尝试使用SED替换某些功能。 假设我有一些名为

的函数

AAAABBBB()

我需要将其更改为

CCCC(nBBBB)

%BBBB< - 这可以是任何legnth,但AAAA,CCCC,n是固定长度。

如何使用SED执行此操作?甚至使用其他方法?

由于

4 个答案:

答案 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)/'