Ich habe eine Reihe von C-Quellcode-Dateien mit Aufrufen wie free(ptr)
. Ich möchte alle diese mit myfree(ptr)
ersetzen. Ich weiß, dass die Regex (free)\(.*\)
wird free
übereinstimmen, aber wie ersetze ich nur die free
und nicht den Teil in Klammern? Ich habe versucht, Varianten vonUnix/Linux finden und ersetzen Funktionsaufrufe in mehreren Dateien
find . -name '*.txt' |xargs perl -pi -e 's/(free)\(.*\)/(myfree)\(.*\)/g'
Dass man free(ptr)
mit myfree(.*)
ersetzen endet, nicht das, was ich will. Ich denke, das ist eine häufige Frage, aber habe nichts gefunden.
's/\ bfree (\ (. * \))/Myfree $ 1 /' – melpomene