В настоящее время у меня есть этот образец данных в test.csv:
0004F2426603,74.214.224.150,16/Apr/2020
0004F2426603,74.214.224.150,17/Apr/2020
0004F2426603,74.214.224.150,18/Apr/2020
00085D20A469,1.2.3.4,16/Apr/2020
00085D20A469,1.2.3.4,17/Apr/2020
00085D20A469,1.2.3.4,18/Apr/2020
00085D20A469,8.8.8.8,16/Apr/2020
64167F801BF5,1.2.3.4,16/Apr/2020
64167F801BF5,1.2.3.4,17/Apr/2020
64167F801BF5,1.2.3.4,18/Apr/2020
64167F801BF5,8.8.8.8,16/Apr/2020
Я использовал datama sh для группировки на основе столбца 1 (адрес MA C) и проанализировать IP-адреса.
Я могу заставить его выглядеть следующим образом:
datamash -st, -g1 unique 2 < test.csv
0004F2426603,74.214.224.150
00085D20A469,1.2.3.4,8.8.8.8
64167F801BF5,1.2.3.4,8.8.8.8
datamash -st, -g1,2 count 2 < test.csv
0004F2426603,74.214.224.150,3
00085D20A469,1.2.3.4,3
00085D20A469,8.8.8.8,1
64167F801BF5,1.2.3.4,3
64167F801BF5,8.8.8.8,1
Но как мне заставить его сбросить верхнюю строку, в которой нет дубликатов MA C, так как только один IP-адрес, и сделать вывод, который выглядит следующим образом?
00085D20A469,1.2.3.4,3,8.8.8.8,1
64167F801BF5,1.2.3.4,3,8.8.8.8,1
Или это, если было 3 IP-адресов ..
64167F801BF5,1.2.3.4,3,8.8.8.8,1,9.9.9.9,1
Я хочу наименьшее количество слева , Я подозреваю, что awk может сделать это, но я действительно боролся.