看到我有一个jig.c文件,其中我有如下语句
mkvFree(jig);
现在我已经使用以下命令查找和替换
find /home/jeegar/jig.c -type f -exec sed -i 's/mkvFree(/mkvFree((void**)&/g' {} \;
通过此命令我想获得输出
mkvFree((void**)&jig);
但是我得到像
mkvFree((void**)mkvFree(jig);
我的命令怎么了?
编辑:
我已经从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' {} \;
&
字符会将整个匹配的输入替换为模式。