使用sed只捕获函数的参数

时间:2012-02-05 14:12:40

标签: regex bash sed

在我的文本文件中,我有一个特殊名称(被视为宏),即:MYFUNCTION[myParam]

现在我想使用sed来获取使用过的param的名称(在上面的例子中它是myParam)并基于它在字典中搜索我用来替换文本的值{{1} }。

我设法创建了一个sed指令来查找一个组,但它也打印了其他单词,即:

myParam

产生以下输出:

echo "some text MYFUCNTION[paramName]" | sed -e "s/MYFUNCTION\[\([a-Z]*\)\]/\1/"

我只想进入输出:

some text paramName

我怎样才能实现这一目标?感谢您的帮助:)

1 个答案:

答案 0 :(得分:2)

将正则表达式中的MYFUNCTION之前的文本包含在.*中,如下所示:

echo "some text MYFUNCTION[paramName]" | sed -e "s/.*MYFUNCTION\[\([a-Z]*\)\]/\1/"