-2

我有一个使用$1and greps 的脚本$2,第一个参数是模式,第二个参数是文件。

我需要创建另一个脚本来调用第一个脚本,将两个参数传递给它,如果第二个是目录,则在目录中的所有文件上循环它。

有谁知道我会怎么做?我不断接近,但惨遭失败。

编辑

以为我发的另一个帖子没有通过,不知怎么弄丢了。我向大家道歉,非常抱歉。

请原谅我。:(

4

2 回答 2

2
if [[ -d $2 ]]; then
    find "$2" -type f -exec ./script "$1" {} \;
else
    ./script "$1" "$2"
fi

如果$2是一个目录,那么该find命令会查找其中的所有文件并为每个文件调用./script一次。花括号{}是这些文件名的占位符。

于 2013-06-20T22:17:21.667 回答
0

就像是:

[[ -d "$2" ]] && grep -e "$1" -r "$2" || grep -e "$1" "$2"

它测试 arg 2 是否为目录(bash 语法),如果是,则以递归模式调用 grep,否则以非递归模式调用。

于 2013-06-20T22:14:39.350 回答