如何使用参数创建grep别名

时间:2014-05-15 14:17:42

标签: linux bash grep alias

假设我有这个搜索词:

grep -i -r --include=*.xib "img_28301.png" ./

我将如何创建一个允许我这样做的别名:

xibsearch img_28301.png 

并做同样的事情?

2 个答案:

答案 0 :(得分:4)

为此设置一个功能会更清晰:

xibsearch() {
    grep -i -r --include=*.xib "$1" ./
}

由于别名不支持位置参数。

答案 1 :(得分:1)

正如@anubhava指出的那样,功能通常是这里的方式。

但是,在这种情况下,如果你必须使用别名,你可以按如下方式重新排列grep:

alias xibsearch='grep -i -r --include=*.xib -f - ./ <<<'

-f -告诉grep使用文件中的表达式,但由于这里的w文件是-,因此从stdin中读取表达式。然后我们使用bash here-string将字符串的内容重定向到stdin。这允许将grep表达式放在命令的末尾,这是别名工作所需的。

因此,如果你打电话:

xibsearch img_28301.png

别名将解析为以下命令:

grep -i -r --include=*.xib -f - ./ <<< img_28301.png

如果我是你,我会使用该功能; - )。