我想创建一个 bash 函数,您可以在其中执行 sed 查找和替换,同时忽略.gitignore
. 我还希望能够向命令添加任何 git grep 标志。例如,为了精确匹配,我应该能够添加-w
.
这是我到目前为止所拥有的:
gs {
local grep_options=()
local search_pattern
local replacement
while [[ $1 =~ ^- ]]; do
grep_options+=("$1")
shift
done
search_pattern=$1
replacement=$2
git grep -l "${grep_options[@]}" "$search_pattern" | xargs sed -i "s/$search_pattern/$replacement/g"
}
gs pattern replacement
将成功进行搜索和替换。但gs -w pattern replacement
什么也不会做。
这是为什么?如何解决?
函数声明中有语法错误。
代替
你需要:
在寻求帮助之前,请务必将脚本传递到https://shellcheck.net: