我习惯在 Linux 下搜索特定的关键字。
例如,我可以在 home 下搜索“TAIWAN”
grep -i -r TAIWAN ./ | grep -v".svn"
但是,我认为这有点多余;我想使用别名,这样我就可以输入
grep TAIWAN
然后别名会将我的命令扩展为
grep -i -r TAIWAN ./ | grep -v".svn"
我怎么能做到这一点?
您将无法使用别名来执行此操作,但您可以创建一个 bash函数:
mygrep () { grep -i -r $* ./ | grep -v".svn"; }
我不相信 alias 可以完成你想要的,因为没有办法重新排序参数。制作一个小的 shell 命令更简单。而不是 replace grep
,因此可能会弄乱期望grep
以某种方式运行的程序,我会给它一个新名称,例如rgrep
.
#!/bin/sh
grep -i -r "$@" | grep -v .svn
把它放在你的某个地方,PATH
并~/bin
用chmod +x ~/bin/rgrep
. 然后就可以了rgrep TAIWAN .
。
不幸的是,这将忽略包含文件的行。.svn
您可以尝试修复模式匹配以仅匹配 grep 输出的文件部分,或者您可以使用代替...grep -v
来启动更复杂的命令,或者您可以使用 ack。find
grep -r
Ack是一个更好的 grep 并且会避免版本控制目录和其他你不关心的常见文件和目录。它还将自动使用寻呼机并为输出着色。