regex para comparar os links do github e os repositórios de lista que terminam com o mesmo nome, mas possuem um proprietário diferente

1

Freqüentemente clonei os repositórios do github e os experimentei no meu computador. Infelizmente, os repositórios do github podem ter o mesmo nome que o nome do repositório de outro usuário.

Por exemplo:

https://github.com/user1/app_name.git
https://github.com/user2/app_name.git

Quando clona um repo no terminal como

git clone https://github.com/user1/app_name.git

salva o repo sob o nome após a barra como

app_name

Se eu clonar o segundo repo, obtenho abpo the repo exists message and cloning repo.

Acabei de perceber isso e quero saber quais repositórios foram abortados dessa maneira.

Para encontrá-los, fiz algo como

history |  grep github.com

mas isso lista centenas de linhas e é difícil selecionar os repositórios com o mesmo app_name e diferente user_name .

Deve ser uma tarefa muito fácil para uma consulta de regex, mas como?

    
por kenn 11.12.2016 / 12:55

1 resposta

1
history | grep -o 'github\.com.*' | tr '/' ' ' | sort -k3 | uniq | uniq -D -f2

Explicação

  • grep -o 'github\.com.*' obtém as linhas que incluem github.com e apara o início da linha (como o número do item no histórico, etc.) para facilitar o contato com os campos
  • tr '/' ' ' change / em espaços porque uniq não tem uma opção para definir um delimitador que não seja espaço em branco ...
  • sort -k3 classifica as linhas usando o terceiro (último) campo, colocando as linhas com o mesmo app_name.git juntos
  • uniq remove linhas duplicadas
  • uniq -D -f2 ignorando os dois primeiros campos, imprima apenas as linhas duplicadas (portanto, imprima a linha apenas se houver mais de uma instância de app_name depois de remover linhas completamente idênticas, indicando que há vários usuários para o mesmo app_name )

Se você quiser evitar que o próprio comando apareça na saída, você pode canalizar de grep -o 'github\.com.*' ~/.bash_history em vez de history | grep -o 'github\.com.*' (embora isso não inclua comandos da sessão atual)

    
por Zanna 11.12.2016 / 13:21