我正在寫一個bash腳本,旨在影響文件夾中的所有文件,以便通過更改參數來替換對給定C函數的所有調用。 這是當前電話是什麼樣子,我想獲得什麼:如何替換C函數調用的整個參數部分?
myfunc(foo) ----> myfunc(foo, foo+1)
我用下面的查找/ sed命令和它的工作:
find . -name "*" -print | xargs sed -i 's/myfunc\([^)]*)\)/myfunc((\1),(\1)+1)/g'
但出現時發出我不得不處理指令/參數包含括號,如以下指令:
sqrt(myfunc((foo+foo)*bar));
什發生的是第一個右括號(即foo
後的一個)被解釋爲myfunc
的說法,它是不是結束...
我怎樣才能得到一個正則表達式(或任何其它命令),用以捕捉和替代(foo+foo)*bar
,即準確的內容正確的括號水平,無論括號的數量是多少?
http://stackoverflow.com/questions/133601/can-regular-expressions-be-used-to-match-nested-patterns – 2014-09-24 07:44:31