regex, чтобы сравнить ссылки GitHub и перечислить repos, которые заканчиваются тем же именем, но имеют другого владельца

Я часто клонирую GitHub repos и пробую их в моем компьютере. К сожалению, GitHub repos может иметь то же имя как имя repo другого пользователя.

Например:

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

Когда я клонирую repo в терминале как

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

это сохраняет repo под именем после наклонной черты как

app_name

Если я клонирую второй repo, я добираюсь the repo exists обменивайтесь сообщениями и клонирующийся repo аварийные прекращения работы.

Я просто заметил, что, и хочу знать который repos, прерванный таким образом.

Для нахождения их, я сделал что-то как

history |  grep github.com

но это перечисляет сотни строк, и трудно взять repos с тем же app_name и отличающийся user_name.

Это должна быть очень легкая задача для запроса regex, но как?

1
задан 13 December 2016 в 01:40

1 ответ

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

Объяснение

  • grep -o 'github\.com.*' получите строки, которые включают github.com и урежьте запуск строки (как количество объекта в истории и т.д.), чтобы помочь иметь дело с полями
  • tr '/' ' ' изменение / в пробелы, потому что uniq не имеет опции установить непробельный разделитель...
  • sort -k3 отсортируйте строки с помощью третьего (последнего) поля, поместив строки с тем же app_name.git вместе
  • uniq удалите дублирующиеся строки
  • uniq -D -f2 при игнорировании первых двух полей распечатайте только дублирующиеся строки, (поэтому только печатают строку, если существует больше чем один экземпляр app_name после удаления абсолютно идентичных строк, указывая, что существуют многочисленные пользователи для того же app_name)

Если Вы хотите избежать самой команды, появляющейся в выводе, можно передать по каналу от grep -o 'github\.com.*' ~/.bash_history вместо history | grep -o 'github\.com.*' (хотя это не будет включать команды от текущей сессии),

1
ответ дан 7 December 2019 в 15:43

Другие вопросы по тегам:

Похожие вопросы: