Jon*_*n H 0 grep find bash-script
find当我在某处进行更改时,我经常在我的代码项目中运行,我必须找到它影响其他代码片段的位置,所以我想写一个非常小的脚本来简化它,称之为blah.sh:
#!/bin/bash -eu
if [ $# -ne 3 ]; then
echo "Three inputs required"
else
find $1 -name $2 -exec grep -iHn $3 {} \;
fi
Run Code Online (Sandbox Code Playgroud)
问题是,当第三个参数(我要查找的文本)包含空格时,我会收到错误消息。例如,为每个试图探索的文件blah . '*.php' 'foo bar'返回。我确定这是一个愚蠢的错误,我并没有真正接触过 bash..grep: bar: No such file or directorygrep
你有没有试过这样的:
find "$1" -name "$2" -exec grep -iHne "$3" {} +
Run Code Online (Sandbox Code Playgroud)
如果没有引号,bash 会对变量执行分词和文件名生成,因此它们最终会作为多个参数传递。
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |