You need to enable JavaScript to run this app. 如何编写接收3个参数的Bash脚本,在指定类型文件中搜索含指定词的行
优惠活动
大模型
产品
解决方案
定价
更多

如何编写接收3个参数的Bash脚本,在指定类型文件中搜索含指定词的行

Bash 脚本解决方案

完整可运行脚本

#!/bin/bash

# 校验入参数量
if [ "$#" -lt 3 ]; then
    echo "参数不足,正确用法:$0 <目标文件夹路径> <文件后缀> <搜索关键词>"
    exit 1
fi

folder_name="${1}"
type_file="${2}"
word="${3}"

echo "包含关键词「${word}」的行如下:"
# 核心搜索逻辑,兼容性更强的find+grep方案
find "${folder_name}" -type f -name "*.${type_file}" -exec grep -h "${word}" {} +

如果你偏好更简洁的写法,也可以把核心搜索部分换成grep原生方案:

# 核心搜索逻辑,grep原生递归方案
grep -r -h --include="*.${type_file}" "${word}" "${folder_name}"

参数适配说明

你给出的示例运行命令./example.sh folder_name hello txt的参数顺序为「目标文件夹→关键词→后缀」,和你最初描述的参数顺序不一致,如果要适配该调用方式,只需要调整变量赋值部分即可:

folder_name="${1}"
word="${2}"
type_file="${3}"

关键逻辑说明

  • -h参数:控制grep只输出匹配的行内容,不打印匹配到的文件路径,符合预期输出格式
  • 所有变量都用双引号包裹,避免路径、关键词包含空格时执行出错
  • find方案兼容所有Unix-like系统环境,不会出现低版本bash/grep不兼容的问题

内容的提问来源于stack exchange,提问作者user15051177

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 20:27:01