У мене є список доменних імен у текстовому файлі з кількістю разів, що відбуваються в колекції файлів електронної пошти. Наприклад:
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), а потім спробуйте сортування.
Роблячи це після того, що фактично буде просто зробити ваше життя важче.