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接受了这个命令
你需要转义\&字符:
find /home/jeegar/jig.c -type f -exec \
sed -i 's/mkvFree(/mkvFree((void**)\&/g' {} \;
Run Code Online (Sandbox Code Playgroud)
该&
字符将替换整个匹配的输入作为模式.