Search code examples
greppipeline

grep in pipeline: why it does not work


I want to extract certain information from the output of a program. But my method does not work. I write a rather simple script.

#!/usr/bin/env python

print "first hello world."
print "second"

After making the script executable, I type ./test | grep "first|second". I expect it to show the two sentences. But it does not show anything. Why?


Solution

  • Escape the expression.

    $ ./test | grep "first\|second"
    first hello world.
    second
    

    Also bear in mind that the shebang is #!/usr/bin/env python, not just #/usr/bin/env python.