Я хотел бы рекурсивно пройти по каталогу и найти все файлы, у которых есть хотя бы один из вызовов функций следующего набора:
A(a)
B(a,b)
C(a,b,c)
теперь, не обращая внимания на аргументы, я могу получить список таких файлов с
grep -r -l '[A-C](' .
хотя я уверен, что могу также как-то сопоставить аргументы. На этих файлах я хочу сделать следующее: во-первых, я хочу сделать резервную копию, то есть сохранить исходный файл в filename.ext_bak или что-то еще, тогда как в filename.ext я хочу заменить каждый случай вызова функции
X(a,...)
от
#ifdef LOL
X_new(f(a),...)
#else
X(a,...)
#endif
где X может быть A, B, C и заметить, что каждый аргумент в X_new заключен в функцию f (...).
Буду признателен за любую помощь! Заранее спасибо!