It is better to leave the excluding to find
, see Birei's answer.
The problem with your grep
pattern is that you have specified it as a shell glob. By default grep
expects basic regular expressions (BRE) as its first argument. So if you replace your grep pattern with: .*\.\(ori\|pte\|uh\|mna\)$
it should work. Or if you would rather use extended regular expressions (ERE), you can enable them with -E
. Then you can express the same exclusion like this: .*\.(ori|pte|uh|mna)$
.
Full command-line:
find . -type f | grep -vE '.*\.(ori|pte|uh|mna)$'