/ / комбінувати як терміни в bash - bash, сортування, grep, uniq

об'єднати як терміни в bash - bash, сортування, grep, uniq

У мене є список доменних імен у текстовому файлі з кількістю разів, що відбуваються в колекції файлів електронної пошти. Наприклад:

 598 aol.com
1 aOL.COM
4 Aol.com
1 AOl.com
6 AOL.com
39 AOL.COM

На електронну пошту було надіслано 598 листів.com та 1 надсилаються до aOL.COM і так далі. Мені було цікаво, чи не було способу в bash поєднати aol.com і aOL.COM і всі інші псевдоніми, оскільки вони насправді є одним і тим же. Будь-яка допомога буде з вдячністю!

Це рядок коду, який вивів цей вивід:

grep -E -o -r "b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}b" $ARCHIVE | sed "s/.*@//" | sort | uniq -c > temp2

Відповіді:

2 для відповіді № 1

Додати a -i (--ignore-case) прапор до uniq накажіть у своєму одному лайнері:

grep -E -o -r "b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,6}b" $ARCHIVE 
| sed "s/.*@//" 
| sort 
| uniq -ic > temp2

Від uniq сторінка людини:

-i
--ignore-case
Ignore differences in case when comparing lines.

0 для відповіді № 2

Я б рекомендував змінити програму, що виробляє цей код, щоб спочатку зробити все в нижньому регістрі, (Перетворення рядка в нижній регістр у Bash shell scripting), а потім спробуйте сортування.

Роблячи це після того, що фактично буде просто зробити ваше життя важче.