solução awk
Se obtivermos uma linha com um hash, armazene-a na variável a.
Se obtivermos uma linha com um endereço MAC correspondente, imprima a variável a, juntamente com a linha atual.
$ awk '/#/{a=$0}/^DD:DD:DD:DD:DD:DD/{print a"\n"$0}' file1 file2
switch_1#show mac address table
DD:DD:DD:DD:DD:DD port 50
switch_2#show mac address table
DD:DD:DD:DD:DD:DD port 45
$
solução sed
Se obtivermos uma linha com um hash, coloque-a no espaço de espera ( h
).
Se obtivermos uma linha com um endereço MAC correspondente, acrescente ao espaço padrão ( H
), copie o espaço para espaço padrão ( g
), imprima o espaço padrão ( p
)
$ sed -n '/#/h;/^DD:DD:DD:DD:DD:DD/{H;g;p}' file1 file2
switch_1#show mac address table
DD:DD:DD:DD:DD:DD port 50
switch_2#show mac address table
DD:DD:DD:DD:DD:DD port 45
$