使用shell命令查找文件夹内的字符串

6ljaweal  于 2023-01-02  发布在  Shell
关注(0)|答案(2)|浏览(328)

如何找到包含特定文本(字符串)的文件夹内的所有文件,如果找到文本,返回1,如果不返回0在Linux?

grep -r "34161FA8203289722240CD40" /usr/lib/cgi-bin/ParkingSoft/api/v3/LaneApi/ETC/MywebSocket /*.txt
bfrts1fy

bfrts1fy1#

试试这个:

grep -rwl 'PATH/targetFolder/' -e 'target_string' | awk -F "/" '{print $NF}'

上面的命令返回包含target_string的所有文件的名称。
要了解-rwl,请查看answer,但是awk -F "/" '{print $NF}'只是拆分grep输出并返回最后一部分。(文件名在您的情况下)

7y4bm7vi

7y4bm7vi2#

如果找不到匹配项,-q选项将返回(退出代码)1。

echo "string" | grep -q in && echo yes
echo "string" | grep -q out && echo yes

在您的情况下:

searchdir="/usr/lib/cgi-bin/ParkingSoft/api/v3/LaneApi/ETC/MywebSocket "
if [ ! -d "$searchdir" ]; then
  echo "Check searchdir. Is 'ETC' really in uppercase and is `Mywebsocket ` including a space?"
else
  if grep -rwq '34161FA8203289722240CD40' "${searchdir}/*.txt; then
    echo "String found in one of the files."
  fi
fi

相关问题