есть фаил test в нем находится много сторок с повторами ( лог courier-a). Требуется удалить из этого фаила все строки которые повторяются. Но строки различаются датой, пример:
Jan 9 15:59:16 mail courierpop3login: LOGIN, user=*@*.ru, ip=[::ffff:***********]
Jan 9 15:59:50 mail courierpop3login: LOGIN: ip=[::ffff:*], command=USER
Jan 9 15:59:50 mail courierpop3login: LOGIN: ip=[::ffff:*], command=PASS
Jan 9 15:59:50 mail courierpop3login: LOGIN: ip=[::ffff:*], username=*@*.ru
Jan 9 15:59:50 mail courierpop3login: LOGIN: ip=[::ffff:*], password=*
Jan 9 15:59:50 mail courierpop3login: LOGIN, user=*@*, ip=[::ffff:*************]
Jan 9 16:00:13 mail courierpop3login: LOGIN: ip=[::ffff:*], command=USER
Jan 9 16:00:13 mail courierpop3login: LOGIN: ip=[::ffff:*], command=PASS
Jan 9 16:00:13 mail courierpop3login: LOGIN: ip=[::ffff:*], username=*@*.ru
Jan 9 16:00:13 mail courierpop3login: LOGIN: ip=[::ffff:*], password=*
И так далее.
Как это можно сделать ?
Andromeda OS
CPU Dual AMD Opteron 2.4 ГГц /RAM 8Gb/HDD 400+400Gb (raid 0)
есть фаил test в нем находится много сторок с повторами ( лог courier-a). Требуется удалить из этого фаила все строки которые повторяются. Но строки различаются датой,
...
Как это можно сделать ?
Skull
вот только uniq сравнивает, к сожалению, лишь соседние строки. unix_man
так что надо еще отсортировать строки прежде чем передавать их uniq-у.
и тут пригодится ключ -k команды sort. например так:
cat <file> | sort -k 6 | uniq -f 5 |sort
последний sort — для восстановления сортировки по дате. но дата не очень-то красиво записана. можно еще поколдовать. man sort.