这是我想要转换为zsh函数的命令,它执行全局搜索并替换字符串:
find ./ -type f -exec sed -i 's/string1/string2/' {} \;
我试过了:
gr () {
find ./ -type f -exec sed -i 's/$1/$2/' {} \;
}
但它似乎不起作用。
答案 0 :(得分:4)
明显的错误是错误的引用 - 一如既往。 '
阻止shell扩展变量,这就是你想要的。请改用"
- 也许你也想要sed的全局标志:
gr () {
find ./ -type f -exec sed -i "s/$1/$2/g" {} \;
}
然而,这不是zsh
- 时尚......以下是更短的,恕我直言更好阅读:
gr () {
sed -i "s/$1/$2/g" **/*(.)
}
**
以递归方式搜索,但不遵循符号链接(如果需要,请使用***
)(.)
将结果限制为普通文件