Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I work in python, so 95% or more of the time my grep search is

grep "thing to find" *.py

or something similar. I'm working in Windows 7, but being a unix guy, I am lazy with my keystrokes, so I would like to set grep to automatically search *.py unless I specify something different.

Is there anything I can add to GREP_OPTIONS to do this? Or something similar?

share|improve this question

migrated from Feb 15 '14 at 19:56

This question came from our site for users of Linux, FreeBSD and other Un*x-like operating systems.

@slyx that should be an answer, but with "$@" instead of $1. – jordanm Feb 10 '14 at 14:49
@jordanm Thanks, I noticed the difference! I've just posted it as an answer ! – Slyx Feb 10 '14 at 14:50
Ah, left out a little detail. I'm working on a Win7 box most of the time. So no functions. I can put it in a batch file {grep %1 *.py} which is better than nothing. I just was hoping for a more canonical/config file or environment variable type solution. – Skip Huffman Feb 10 '14 at 16:12
@SkipHuffman, In windows envirenement (MSDOS) you can also define a DOSKEY macro : DOSKEY pygrep=grep $* *.py and call it the same way you see in the answers. unfortunately DOSKEY and BATCH parameters number is limited to 9 in Windows environment so don't forget to use pygrep "Your search between double quote limiters" – Slyx Feb 11 '14 at 1:55

You can define a function pygrep which will search inside your py files only :

pygrep() { 
    grep "$@" *.py
share|improve this answer
@jordanm Thanks for the POSIX compliant edit ! – Slyx Feb 11 '14 at 7:05

Create a function

mygrep(){ grep "$@" *.py}

Run it

mygrep main

Add the function to your login startup file.

share|improve this answer
What's the point of the alias? Why not just call the function mygrep and be done with it? – terdon Feb 10 '14 at 15:11
My function names tend to be long but my aliases short. I did say it was optional. – X Tian Feb 10 '14 at 15:13
Yes you did, I was just wondering why you would want the alias at all, it seems to simply add a layer of complexity without doing anything useful. Am I missing something? – terdon Feb 10 '14 at 15:14
That's probably because I started defining aliases and then functions came along, adding that layer of complexity. So it's a bit of an old habit. – X Tian Feb 10 '14 at 15:21
Ah, yes, I know all about old habits :). So aliases predate functions? I had no idea. – terdon Feb 10 '14 at 15:22
up vote 0 down vote accepted

I ended up creating a mini batch file:

grep -n "%*" *.py

saves a few keystrokes, and matches my normal brain cycle. "Where is this phrase in my python code?"

Thanks everyone for the input!

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.