Suponha que o arquivo l1
seja a lista com os endereços IP desconhecidos e o arquivo l2
seja a lista principal.
Os itens a seguir listarão todos os endereços IP que estão apenas em l1
e não em l2
:
egrep -v "'cat l2|xargs -I {} echo -n '|{}'|sed -e 's/^|//''" l1
Se você remover a opção -v
, ela listará todos os endereços IP que ocorrem em l1
e l2
:
egrep "'cat l2|xargs -I {} echo -n '|{}'|sed -e 's/^|//''" l1
Ambos os arquivos l1
e l2
devem estar no mesmo formato.
O seguinte comando:
cat l2|xargs -I {} echo -n '|{}'|sed -e 's/^|//'
cria uma lista de endereços IP, separados por |
, do conteúdo do arquivo l2
. O |
é o caractere or
para o regex passado para egrep
.
Testado com arquivos:
$ cat l1
192.168.0.10
192.168.2.14
192.168.0.11
192.168.0.9
$ cat l2
10.64.10.200
192.168.4.0
192.168.2.3
192.168.0.10
192.168.0.11
192.168.1.0
192.168.2.0
Encontrar endereços IP ausentes:
$ egrep -v "'cat l2|xargs -I {} echo -n '|{}'|sed -e 's/^|//''" l1
192.168.2.14
192.168.0.9
Encontre endereços IP duplicados:
$ egrep "'cat l2|xargs -I {} echo -n '|{}'|sed -e 's/^|//''" l1
192.168.0.10
192.168.0.11
Espero apenas que seus arquivos não sejam muito longos para transbordar o comprimento máximo da linha de comando: - (