Как проверить папку с текстовыми файлами на наличие дубликатов URL

У меня есть папка с *.txt файлы. Я хочу регулярно проверять эти файлы на наличие дубликатов URL.

На самом деле, я сохраняю свои закладки в этих файлах, всегда с как минимум двумя строками, такими как:

www.domain.com
Quite a popular domain name

Как это происходит, я сохраняю тот же URL с другим описанием, например:

www.domain.com
I should buy this domain
Whenever I happen to have enough money for this

Все записи разделены единственными пустыми строками. И иногда URL-адреса имеют формат уценки:

[domain.com](www.domain.com)

Как бы я просканировал папку на наличие дубликатов URL?

Единственное решение, которое я нашел, это cat в сочетании с этим uniq трубы:

cat folder/* |sort|uniq|less > dupefree.txt

Проблема с этим заключается в следующем:

  1. При этом проверяются только полностью идентичные строки - URL-адреса уценки игнорируются, а связанные комментарии теряются.
  2. Я не хочу выводить очищенный текстовый файл, но мне нужна подсказка, какие URL являются дубликатами

Как я могу сделать правильный дубликат проверки?

1 ответ

Решение

Вот исходный файл, который я сделал из вашего описания

cat file

www.domain.com
Quite a popular domain name

www.domain.com
I should buy this domain
Whenever I happen to have enough money for this
All entries are separated by single blank lines. And sometimes the URLs are in markdown format:

[domain.com](www.domain.com)
How would I crawl the folder for duplicate URLs?

Использование awk для экспорта дубликата доменного имени:

awk 'BEGIN{FS="\n";RS=""}
{ if ($1~/\[/) { split($1,a,"[)(]"); domain[a[2]]++}
  else {domain[$1]++}
}
END{ for (i in domain) 
      if (domain[i]>1) print "Duplicate domain found: ",i
    }' file

Duplicate domain found:  www.domain.com
Другие вопросы по тегам