查找{}的sed正则表达式,忽略其中的字符串

查找{}的sed正则表达式,忽略其中的字符串,sed,Sed,在text文件(在linux系统上)中,我有以下字符串: O\WIN\u Infrastructur{Windows Fabrik}\FIM{Forefront Identity Manager(Benutzer)}\EXTRA{} 现在,我想替换O\WIN\u infrastructur{Windows Fabrik},但我不知道{}中有什么。它可以是空的,也可以是文本 我尝试过这个,但没有成功: sed-e's/O\\WIN\u基础设施{[a-zA-Z0-9]}/O\\WIFI{}/g' 结

text
文件(在linux系统上)中,我有以下字符串:

O\WIN\u Infrastructur{Windows Fabrik}\FIM{Forefront Identity Manager(Benutzer)}\EXTRA{}

现在,我想替换
O\WIN\u infrastructur{Windows Fabrik}
,但我不知道
{}
中有什么。它可以是空的,也可以是文本

我尝试过这个,但没有成功:

sed-e's/O\\WIN\u基础设施{[a-zA-Z0-9]}/O\\WIFI{}/g'

结果必然是:

O\WIFI{}\FIM{Forefront Identity Manager(Benutzer)}\EXTRA{}


有人能帮我吗

使用定界符作为模式的结尾,这里是
}
,因此请使用一个类来排除此项,使用
[^}]*}

sed -e 's/O\\WIN_INFRASTRUKTUR{[^}]*}/O\\WIFI{}/g' YourFile

sed-e's/WIN_Infrastructur{[^}]*}/WIFI{}/g'

谢谢,它会成功的,但如果我想得到这个结果,那是什么呢:

O\WIFI{}\EXTRA{}. 
我这样做没关系:

sed -e 's/O\\WIN_INFRASTRUKTUR{[^}]*}\\FIM{[^}]*}/O\\WIFI{}/g'

然后我只得到这个结果:
O\WIFI{}

您不需要在结果中替换0\因为您希望它。谢谢,它会成功的,但是,如果我想得到这个结果:删除
g
选项a最后,只有一次出现(还有更多吗?)我需要在最后替换g,因为文件中有更多