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+$'
-P
alterna para o modo regex do PCRE, o que é necessário para que ele entenda que\d
significa "qualquer dígito (0-9)".%-o
diz 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