Folder_name = "D:\newfolder\xxx"
echo "enter keyword"
read string
if grep $string $Folder_name;
then
echo "yes"
else
echi "no"
fi
答案 0 :(得分:1)
使用此:
Folder_name=/newfolder/xxx
echo "enter keyword"
read string
if grep -q -F "$string" "$Folder_name"/*
then echo yes
else echo no
fi
=
周围没有空格。grep
需要文件名参数,而不是目录,除非您使用-r
选项以递归方式搜索目录。-q
选项告诉grep
不要打印匹配的行。-F
选项告诉它将$string
视为逐字字符串而不是正则表达式。答案 1 :(得分:1)
如果您正在寻找是/否回复,可以使用以下一行命令:
grep -q $string $Folder_name/* && echo 'Yes'|| echo 'No'
答案 2 :(得分:1)
我会说
found=false
for file in *; do
if grep -q "$string" "$file"; then
found=true
break
fi
done
if $found; then
echo "at least one file contains $string"
else
echo "no files contain $string"
fi
答案 3 :(得分:1)
您是在寻找包含特定字符串的文件,还是在寻找包含特定字符串的文件名?
find . -type f -exec grep -l "string" {} \;
find . -type f | grep "string"
答案 4 :(得分:1)
您可以使用此搜索
cd "$Folder_name" && count=$(grep -R -c "$string")
if [ $count -gt 0 ]; then
echo "Yes"
else
echo "No"
fi
这会递归搜索文件夹中的所有文件。