shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Filtrar e concatenar linhas


From: diramos
Subject: Re: [shell-script] Filtrar e concatenar linhas
Date: 30 Oct 2014 14:51:20 -0700

Mestres,
Perdoem se não me expressei corretamente.
Vou explicar mais adequadamente:
Meu arquivo.log simplificado:

dn: CN=AM3578NT002,OU=AM,OU=Servidores
userAccountControl: 4128
dn: CN={e0c28711-fd70-4c4a-aae4-b97031cfa0bf},CN=AM7458SR007,OU=AM,OU=Servidor
dn: CN=AM3898NT002,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br

userAccountControl: 4096
dn: CN=AM7417SR001,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br
userAccountControl: 4096
dn: CN=IASIdentity,CN=RS4436NT002,OU=RS,OU=Servidores,OU=CAIXA,DC=corp,DC=caix
dn: CN=RS2093NT002,OU=RS,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br

userAccountControl: 4128
dn: CN=RS2615NT002,OU=RS,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br
userAccountControl: 4128

Notem que tem linhas consecutivas que repetem a string "dn: " (em negrito) no início.

Preciso que fique assim:

dn: CN=AM3578NT002,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4128
dn: CN=AM3898NT002,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4096
dn: CN=AM7417SR001,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4096
dn: CN=RS2093NT002,OU=RS,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4128
dn: CN=RS2615NT002,OU=RS,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4128

Tentei todas as as dicas passadas, bem como outras tentativas, e nenhuma funcionou perfeitamente. Certamente por eu não ter explicado corretamente o problema.
O que chegou mais perto foi a dica do Paulo e Itamar, assim:

cat /tmp/arquivo.log | awk '/dn:/ {atual=$0;getline proxima; if(proxima ~ /userAccountControl:/){ print atual "," proxima }}'

RESULTADO:

dn: CN=AM3578NT002,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4128
dn: CN=AM7417SR001,OU=AM,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4096
dn: CN=RS2615NT002,OU=RS,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl: 4128


OU SEJA:


Faltaram linhas para o resultado que preciso.

Peço compreensão e ajuda, por favor, se puderem.
E prometo caprichar mais da próxima vez.

Grato.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]