Ответ @rici правильный, но обратите внимание, что -D
является расширением GNU
Вот awk-решение. Он выполняется за один проход, но сохраняет предыдущую строку:
sort -k3n <file name> | awk 'a[$3]++{ if(a[$3]==2){ print b }; print $0}; {b=$0}'
Установка nslookup
указала мне на то, что источник проблемы:resolv.conf
просто не поддается разбору. Скопировал содержимое из исходного файла в новый и все работает. Тот же контент, те же разрешения. Но diff
показывает разницу там, где ее нет. По-видимому, есть какой-то невидимый символ, разбивающий файл, так как он на 1 байт больше
/etc# diff resolv.conf.odd resolv.conf.dem
1c1
< nameserver 8.8.8.8
---
> nameserver 8.8.8.8
/etc# cat resolv.conf.odd && cat resolv.conf.dem
nameserver 8.8.8.8
nameserver 8.8.8.8
/etc# ls -l resolv.conf.*|cut -d' ' -f5,9
19 resolv.conf.dem
20 resolv.conf.odd
Обновление :Как с благодарностью отметил cas, это был трейлинг \r
, вызвавший хаос, и не имел ничего общего с самим обновлением Бастера. Коллега отправил файл с неправильным переносом строк
$ hd resolv.conf.odd
00000000 6e 61 6d 65 73 65 72 76 65 72 20 38 2e 38 2e 38 |nameserver 8.8.8|
00000010 2e 38 0d 0a |.8..|