如何检查 grep 递归是否返回某些内容?

如何检查 grep 递归是否返回某些内容?

我去检查 grep recursive ( grep -r) 是否返回某些内容,所以我尝试了以下方法:

  v5='blabla'
  if grep -rq "$v5" "$1"; then

   echo "word found Ok : $5"

   else 

   echo "not found"

   fi

$1是一个参数。
当我把grep -q "$v5" "name_Of_File"它放在工作时:我有这个输出:word found Ok,但对我来说,我想在所有目录和子目录中搜索。

答案1

你可以grep -rq "$v5" "$1"$1一个目录。您的代码应该按预期工作。没问题。

编辑:

我刚刚尝试了您的脚本,仅将$5/替换$v5$1并更改$1$2具有两个参数。

#!/bin/bash

if grep -rq "$1" "$2"; then
        echo "word found Ok : $1"
else
        echo "not found"
fi

将脚本另存为rgrep.sh并运行chmod +x rgrep.sh
要测试它,请创建一个测试文件并运行脚本(此处带有输出):

$ echo blablah > /tmp/blah
$ ./rgrep.sh "blabla" /tmp
word found Ok : blabla
$ ./rgrep.sh "blah" /tmp
word found Ok : blah
$ ./rgrep.sh "blapp" /tmp
not found

相关内容