Reputation: 522
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.
Upvotes: 1
Views: 5498
Reputation: 201537
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
Upvotes: 0
Reputation: 14975
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
Upvotes: 3
Reputation: 137557
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.
Upvotes: 5