Как проверить папку с текстовыми файлами на наличие дубликатов 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
Проблема с этим заключается в следующем:
- При этом проверяются только полностью идентичные строки - URL-адреса уценки игнорируются, а связанные комментарии теряются.
- Я не хочу выводить очищенный текстовый файл, но мне нужна подсказка, какие 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