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.