如何用参数创buildgrep别名

可以说我有这个search词:

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

我将如何去创build一个别名,允许我这样做:

 xibsearch img_28301.png 

并做同样的事情?

Solutions Collecting From Web of "如何用参数创buildgrep别名"

有这个功能会更清洁:

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

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

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

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

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

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

因此,如果你打电话给:

 xibsearch img_28301.png 

该别名将解析为以下命令:

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

如果我是你,我会使用这个函数;-)。