Com o GNU grep
(testado com a versão 2.6.3):
git status | grep -Pzo '.*Untracked files(.*\n)*'
Usa -P
para expressões regulares perl, -z
também corresponde a nova linha com \n
e -o
para imprimir apenas o que corresponde ao padrão.
O regex explicado :
Primeiro, combinamos qualquer caractere ( .
) zero ou várias vezes ( *
) até uma ocorrência da string Untracked files
. Agora, a parte entre parênteses (.*\n)
corresponde a qualquer caractere, exceto uma nova linha ( .
) zero ou várias vezes ( *
) seguida por uma nova linha ( \n
). E tudo isso (dentro das backets) pode ocorrer zero ou várias vezes; esse é o significado do último *
. Agora deve corresponder a todas as outras linhas, após a primeira ocorrência de Untracked files
.