Cat, Grep, Redirect Output.... Blank File?
This happened because the first thing >
does is to create the file it wants to write to - and if the file already exists, its contents will be deleted. (Also, there's no need at all to use cat
in your statement since grep
works on files, not just on STDIN.)
The correct way to do this is to use a temporary file either to read from or to write to. So either
cp /opt/webapplications/Word/readme.log /tmp/readme.log
grep -v 'Apple' /tmp/readme.log > /opt/webapplications/Word/readme.log
or
grep -v 'Apple' /opt/webapplications/Word/readme.log > /tmp/readme.log
mv /tmp/readme.log /opt/webapplications/Word/readme.log
would work.