Parece que você quer apenas:
grep -o '^[A-Z]\+'
-o
significa apenas a saída da parte correspondente da linha, e a expressão regular corresponde a uma sequência de uma ou mais letras maiúsculas no início de uma linha.
Você também pode fazer esse tipo de coisa com sed
, que é supercomplicado para este exemplo, mas útil (e mais simples que awk
ou perl
) se precisar fazer uma correspondência ou transformação mais complexa:
sed -n '/^[A-Z]\+/{s/^\([A-Z]\+\).*//;p}'