egrep -ho '@\w+' "$@" | sort -u
egrep is the same as grep -E, meaning the pattern is interpreted as an extended regular expression. -o makes grep print only the text that matches the pattern, not the whole line. -h makes grep not print the file name. The pattern is any word that begins with @. The "$@" only makes sense if you put this rune into a file, where it will pass any parameters to egrep; otherwise you can just supply file names directly. sort -u sorts the output asciibetically and suppresses repetition.
How to find all the feature files in your suite is less trivial. find -name \*.feature might work for you. You can then find -name \*.feature -print0 | xargs -0r egrep -ho '@\w+' | sort -u to get all the tags in your suite.
One caveat about this: If a word starting with @ is part of a step or table, it will also be printed. You can avoid this by excluding lines that don't have @ as their first non-blank character, like so: egrep '^\s*@' | …