📜  shell 在目录中查找字符串 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:20:07.761000             🧑  作者: Mango

Shell在目录中查找字符串

当我们需要在一个目录及其子目录中查找一个字符串时,可以使用shell脚本来实现。以下是一个简单的示例:

#!/bin/bash

# 第一个参数为要搜索的目录
# 第二个参数为要查找的字符串
# 第三个参数为是否递归搜索子目录

find_string() {
  if [ "$3" = 'true' ]
  then
    # 递归查找
    result=$(grep -r -l "$2" $1)
  else
    # 非递归查找
    result=$(grep -l "$2" $1/*)
  fi

  if [ "$result" != "" ]
  then
    echo "找到以下文件包含了字符串 '$2':"
    echo "```"
    echo "$result"
    echo "```"
  else
    echo "没有找到包含字符串 '$2' 的文件"
  fi
}

# 示例用法
find_string /path/to/directory "hello world" true

该脚本接受三个参数,分别为要搜索的目录、要查找的字符串、是否递归搜索子目录。它使用了 grep 命令来查找包含指定字符串的文件,并输出文件名列表。如果没有找到包含指定字符串的文件,则输出一个提示。

示例输出:

找到以下文件包含了字符串 'hello world':
/path/to/directory/file1
/path/to/directory/subdirectory/file2


希望这个示例能够帮助你实现自己的需求。