Не намного короче, но поскольку вам действительно не нужно регулярное выражение, есть fgrep (grep -F).
fgrep 'success
error
fail' "$filename" | sort | uniq -c
другой способ написать одно и то же в bash: [ ! d1]
fgrep $'success\nerror\nfail' "$filename" | sort | uniq -c