# 文件关键字搜索工具 **Repository Path**: zcoolq/search-keywords ## Basic Information - **Project Name**: 文件关键字搜索工具 - **Description**: 这是一个功能强大的文件关键字搜索工具,可以在指定目录中搜索多个关键字,并将结果以结构化的方式输出到文件中。 - **Primary Language**: Shell - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-18 - **Last Updated**: 2025-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 文件关键字搜索工具 这是一个功能强大的文件关键字搜索工具,可以在指定目录中搜索多个关键字,并将结果以结构化的方式输出到文件中。 ## 功能特点 - 支持多关键字批量搜索 - 可通过配置文件排除指定目录 - 可通过配置文件限定搜索特定文件类型 - 并行处理提升搜索效率 - 详细的日志记录 - 输出结果格式化,便于查看和处理 - 自动处理特殊字符和编码问题 ## 使用方法 基本用法: ```bash ./search_keywords.sh <关键字文件> <搜索目录> <输出文件> [排除目录文件] [文件类型文件] ``` 参数说明: - `<关键字文件>`: 包含搜索关键字的文件,每行一个关键字 - `<搜索目录>`: 要搜索的目录路径 - `<输出文件>`: 搜索结果输出文件 - `[排除目录文件]`: 可选参数,包含要排除的目录列表的文件,每行一个目录 - `[文件类型文件]`: 可选参数,包含要搜索的文件类型列表的文件,每行一个类型(不含点号) ## 配置文件格式 ### 关键字文件 (keywords.txt) ``` TODO FIXME @Deprecated console.log System.out.println 密码 password 测试 test ``` ### 文件类型文件 (file_types.txt) ``` java xml properties js ts ``` ### 排除目录文件 (exclude_dirs.txt) ``` node_modules .git dist build ``` ## 示例 1. 基本搜索: ```bash ./search_keywords.sh keywords.txt testdata output.txt ``` 2. 使用排除目录文件: ```bash ./search_keywords.sh keywords.txt testdata output.txt exclude_dirs.txt ``` 3. 使用文件类型文件: ```bash ./search_keywords.sh keywords.txt testdata output.txt "" file_types.txt ``` 4. 同时使用排除目录和文件类型文件: ```bash ./search_keywords.sh keywords.txt testdata output.txt exclude_dirs.txt file_types.txt ``` ## 输出格式 搜索结果将以以下格式输出到指定文件: ``` 关键字 文件路径:行号:行内容 ------ ------------------ ```