2015-12-30 84 views
0
text文件(在Linux系統上)

我有這個字符串:查找{SED正則表達式},忽略了字符串中它

O\WIN_INFRASTRUKTUR{Windows Fabrik}\FIM{Forefront Identity Manager(Benutzer)}\EXTRA{}

現在,我想更換O\WIN_INFRASTRUKTUR{Windows Fabrik},但我不不知道什麼是{}。它可以是空的或文字。

我試試這個,但沒有成功:

sed -e 's/O\\WIN_INFRASTRUKTUR{[a-zA-Z0-9]}/O\\WIFI{}/g'

和必須的結果:

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

誰能幫助我?

回答

0

使用分隔符爲你的模式的結束,這}所以採取了類不包括這一點,任何事件比[^}]*}

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

謝謝,這將是SUCESSFUL,但什麼,如果我想有這樣的結果: – Manuela

0

sed -e 's/WIN_INFRASTRUKTUR{[^}]*}/WIFI{}/g' <filename>

+0

你不需要更換0 \只要你想它在你的結果中。 – Hemang

0

感謝您的分隔符,這將是SUCESSFUL,但什麼,如果我想有這樣的結果:如果我這樣做

O\WIFI{}\EXTRA{}. 

沒關係:

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

比我只得到這樣的結果:O\WIFI{}

+0

刪除'g'選項一個結尾,只有一個出現(是否有更多?) – NeronLeVelu

+0

我最後需要g,因爲文件中有更多 – Manuela

相關問題