Question

I'm quite new to bash/shell scripting and can't seem to figure this out. While executing a bash script it stalls on a grep command. The Terminal just stops doing anything and you have press CTRL+Z to stop the script. I do not see a problem with the command line itself.

Code:

DATE="01-Apr-14"

grep 'error' | grep -v 'PHP Notice\|PHP Warning\|File does not' ~/Desktop/Servers/Folder/Error/Error_$DATE.txt >> ~/Desktop/Review/Folder_Review_$DATE.txt

Any help is greatly appreciated.

Was it helpful?

Solution 2

You mixed grep orientation:

 grep 'error' ~/Desktop/Servers/Folder/Error/Error_$DATE.txt| grep -v 'PHP Notice\|PHP Warning\|File does not'  >> ~/Desktop/Review/Folder_Review_$DATE.txt

OTHER TIPS

grep 'error' is expecting its input from standard in. If you're not providing any input (via the keyboard, a pipe, etc), then it will block indefinitely.

Your first grep is reading stdin. I think you wanted

grep 'error' ~/Desktop/Servers/Folder/Error/Error_$DATE.txt | \
  grep -v 'PHP Notice\|PHP Warning\|File does not' \
  >> ~/Desktop/Review/Folder_Review_$DATE.txt

I had the same issue. Try pressing Ctrl + c.

It worked for me.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top