Данный входной файл foo.txt :
отсортирует
первые три поля численно, ] datamash
для выполнения реальной работы по объединению IP-тегов, вырезать
избыточное поле, затем использовать sed
для замены любых комбинированных тегов на «оба».
sort -r -k1n -k2n -k3n foo.txt | \
datamash -W -f -s -g3 collapse 4 | \
cut --complement -f4 | \
sed 's / \ t [sdb]. *,. * $ / \ Tboth / g'
Вывод:
2014-11-24 12:59:42.169 101.0.0.0 source
2014-11-24 12:59:40.375 104.156.80.0 destination
2014-11-24 12:59:36.729 104.219.48.0 destination
2014-11-24 12:59:40.377 104.37.160.0 source
2014-11-24 12:59:06.456 107.188.128.0 both
2014-11-24 12:59:42.043 107.192.0.0 both
2014-11-24 12:59:33.209 108.175.32.0 both
2014-11-24 12:59:55.488 111.0.0.0 both