I'm new to linux shell and am trying to do this, preferably in one line, with the following condition: It can't output anything to the terminal.
/var/folder/program.exe -L parameters | grep text_to_filter && echo SomeText >'/tmp/Log.txt'
The problem is the.exe spits out XML data to terminal. I can't figure out how to grep, use the exit status, but not have the screen cluttered with the output of each match. If I use /dev/null 2>&1
, it pipes it quite but then I can't grep the data. Any idea's?
Use grep -q
(quiet)
/var/folder/program.exe -L parameters |
grep -q "text_to_filter" && echo 'SomeText' > '/tmp/Log.txt'
As per man grep
:
-q, --quiet, --silent
Quiet; do not write anything to standard output. Exit immediately with zero status if any match is found, even if an error was detected. Also see the -s or --no-messages option.
Try using |& rather than just |. (needs bash 4)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.