This should work
RewriteRule ^blog/(.*)/(.*)/? http://www.newdomain.com/blog/$1/ [R=301,L]
RewriteRule ^blog/(.*) http://www.newdomain.com/blog/$1 [R=301,L]
It will keep your original rule and will rewrite http://www.olddomain.com/blog/directory/file/
to http://www.newdomain.com/blog/directory/
The /?
means that the last /
is optional i.e. it will redirect http://www.olddomain.com/blog/directory/file/
and http://www.olddomain.com/blog/directory/file
to http://www.newdomain.com/blog/directory/