I find myself writing this all the time in the bash shell:
grep -r $some_string .|grep -vE 'svn|blib'
It seems that either my bash shell knowledge is too limited or bash aliases cannot take argument (for $some_string). How do you handle that? A bit of Perl or a simple shell script? (I believe zsh allows aliases to take arguments but I really don't want to learn another shell).
Re:functions
Shlomi Fish on 2006-01-17T19:25:16
A function that does that is:
rgrep() { grep -r "$1" . | grep -vE 'svn|blib' ; }
And then you say:
$ rgrep $string
It doesn't exclude blib yet, but it does ignore
That's why I use Svk. Well, okay... I use it for other reasons, but that's a nice benefit.
(No, bash aliases can't take arguments.)
This seems like one of those things that seemed "too small to put on CPAN", but probably isn't.
Re:Alias syntax
Smylers on 2006-01-17T11:10:36
No, there isn't an equivalent syntax for Bash aliases. This is because in C Shell the
!
there is a history substitution, and history works differently in Bash from in C Shell.As others have said, use a function; there isn't really any advantage in using a Bash alias over a function (other than you're more likely already to know the alias syntax).
I think this should do what you want (untested):
function kerplop
{
grep -r "$@" . | grep -vE 'svn|blib'
}(Function name courtesy of meta.)
Smylers
Bash functions are amazingly useful, and ridiculously simple. Just put something like this in your
ovidgrep () {
grep -r "$1" .| grep -vE 'svn|blib'
}