找到并替换整个直接问题的命令

Jee*_*tel 3 c linux shell replace

看到我有一个jig.c文件,我有声明像

mkvFree(jig);
Run Code Online (Sandbox Code Playgroud)

现在我使用了以下命令进行查找和替换

find /home/jeegar/jig.c -type f -exec sed -i 's/mkvFree(/mkvFree((void**)&/g' {} \;
Run Code Online (Sandbox Code Playgroud)

通过这个命令我想得到输出

mkvFree((void**)&jig);
Run Code Online (Sandbox Code Playgroud)

但我得到的输出就像

mkvFree((void**)mkvFree(jig);
Run Code Online (Sandbox Code Playgroud)

我的命令怎么了?

编辑:

我从https://superuser.com/questions/324428/find-and-replace-command-for-whole-directory接受了这个命令

seh*_*ehe 6

你需要转义\&字符:

find /home/jeegar/jig.c -type f -exec \
       sed -i 's/mkvFree(/mkvFree((void**)\&/g' {} \;
Run Code Online (Sandbox Code Playgroud)

&字符将替换整个匹配的输入作为模式.