Dado que todos os dados serão formatados de forma idêntica, grep é a ferramenta errada para isso. É utilizável, certamente, mas usá-lo é um kludge - não é para isso que o grep foi projetado, e uma ferramenta muito melhor é awk .
Como o seu delimitador sempre será uma sequência "espaço, traço, espaço", por exemplo, - , você pode fazer isso:
$ awk -F' - ' '{print $2}' <filename>
onde <filename> é o nome do arquivo com os dados que você está pesquisando e você obterá todas as linhas do arquivo inteiro aparadas para apenas a segunda entrada. Se você não gosta de usar um delimitador de três caracteres, pode fazer isso:
$ awk -F- '{print $2}' | tr -d ' '
que simplesmente pega tudo, desde o primeiro - até o segundo, incluindo os espaços, e remove os espaços via tr . Claro, se você tem espaços em seus nomes de arquivos, isso causaria problemas, e você vai querer manter o primeiro exemplo.