Contanto que você tenha GNU awk
aqui é o one-liner que você precisa:
$ awk '{n=split($2,ip,".");if(n==4)print $0;else a[$2]=$0}END{n=asorti(a,b);for(i=1;i<=n;i++)print a[b[i]]}' file
/etc/backup/app 172.1.120.12 172.110.120.98
/etc/backup/app 172.1.120.1 172.110.120.7
/var/log/df 193.23.2.111 193.23.2.159
/etc/backup/app 172.1.120 172.110.120
/etc/backup/app 192.1.120 192.120.120
/var/log/df 193.23.2 193.23.2