Você pode fazer isso facilmente com grep , mas precisa de duas etapas:
-
Filtre a linha que contém
Total:grep 'Total' -
Exibir apenas o último número (dígitos consecutivos) dessa linha:
grep -Po '\d+$'-Palterna para o modo regex do PCRE, o que é necessário para que ele entenda que\dsignifica "qualquer dígito (0-9)".%-odiz para exibir somente a sequência correspondente, não a linha inteira.
$corresponde ao fim da linha.
Juntos, esses snippets formam o comando abaixo:
loc | grep 'Total' | grep -Po '\d+$'
Se assumirmos que você tem um arquivo de texto simples contendo uma linha como esta:
Linhas de código atuais neste projeto: 123
Você pode editar este arquivo e substituir o número nesta linha pelo valor armazenado na variável de bash $linecount usando o comando sed abaixo. É claro que você deve armazenar a contagem total de linhas nessa variável primeiro, assim:
linecount=$(loc | grep 'Total' | grep -Po '\d+$')
sed -i -E "s/(Current lines of code in this project: )[[:digit:]]+/$linecount/" README.MD