Уникальные строки из файла
Допустим, у Вас есть лог-файл, куда записываются различного рода операции, в данном случае ошибка #18956. В этом файле присутствует всего два различных значения: это дата ошибки и логин пользователя. Пример файла:
[17-Oct-2012 01:32:29] ERROR! ERR-CODE=18956, login=Gonshik1
[17-Oct-2012 02:32:56] ERROR! ERR-CODE=18956, login=Gonshik1
[17-Oct-2012 13:15:50] ERROR! ERR-CODE=18956, login=Gonshik1
[17-Oct-2012 13:41:19] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 09:57:22] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 10:04:10] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 10:08:46] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 10:18:20] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 10:45:47] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 14:28:36] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 15:22:11] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 16:07:16] ERROR! ERR-CODE=18956, login=Gonshik1
[18-Oct-2012 19:30:55] ERROR! ERR-CODE=18956, login=Gonshik1
[19-Oct-2012 04:18:05] ERROR! ERR-CODE=18956, login=Gonshik1
[19-Oct-2012 05:40:03] ERROR! ERR-CODE=18956, login=Speedy
[19-Oct-2012 11:14:20] ERROR! ERR-CODE=18956, login=Slava
[19-Oct-2012 11:14:30] ERROR! ERR-CODE=18956, login=Kareta777
[19-Oct-2012 11:14:48] ERROR! ERR-CODE=18956, login=Kareta777
[19-Oct-2012 11:15:11] ERROR! ERR-CODE=18956, login=Kareta777
[19-Oct-2012 11:15:13] ERROR! ERR-CODE=18956, login=Slava
[19-Oct-2012 11:15:26] ERROR! ERR-CODE=18956, login=Kareta777
[19-Oct-2012 11:15:46] ERROR! ERR-CODE=18956, login=Kareta777
[19-Oct-2012 11:16:13] ERROR! ERR-CODE=18956, login=Slava
[19-Oct-2012 12:00:54] ERROR! ERR-CODE=18956, login=Gonshik1
[19-Oct-2012 14:13:44] ERROR! ERR-CODE=18956, login=Dmitry
Вам нужно выбрать всех пользователей или узнать сколько пользователей инициировали данную ошибку. Вам нужно выбрать уникальные строки из файла не смотря на дату ошибки.
Простейший код:
cat logfile.txt | grep -oEi '(login=)(\w+)' | sort | uniq | sed 's/login=//g'
На выходе мы получим только не повторяющиеся логины пользователей, у которых возникла определенная ошибка. Вот и все.