[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Re: Filtrar e concatenar linhas
From: |
Paulo Bettega |
Subject: |
Re: [shell-script] Re: Filtrar e concatenar linhas |
Date: |
Thu, 30 Oct 2014 00:29:24 -0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 |
Veja se agora foi :)
Imprimir as linhas 'dn: ...etc...' que forem seguidas
da linha 'userAccountControl: xxxx' grudando a segunda
linha na primeira, é isso?
$ grep -oPz '(?s)dn[: [:alnum:]=,]+br.user[A-Za-z]+: [0-9]+' /tmp/arquivo.log |
sed 'N;s/\n/,/'
dn:
CN=BA1450NT001,OU=BA,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl:
4096
dn:
CN=BA0072VG501,OU=BA,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl:
4098
dn:
CN=BA4582NT001,OU=BA,OU=Servidores,OU=CAIXA,DC=corp,DC=caixa,DC=gov,DC=br,userAccountControl:
4128
Mas qual a sintaxe exata do comando?
Tentei assim:
$ cat /tmp/arquivo.log | grep -B1 'userAccountControl: 4096' <<<"$linhas"|sed
'N;s/\n/,/'
E não retornou nada.
Eu coloquei as linhas que vc postou na variável $linhas,
então <<<"$linhas" é a entrada do grep.
Dá uma olhada no 'Papo de Botequim' do Mestre Julio
http://wiki.softwarelivre.org/TWikiBar/TWikiBarBirinaite#Here_Strings
O grep aceita um arquivo como entrada, então vc pode fazer
grep 'user' /tmp/arquivo.log ao invés de cat /tmp/arquivo.log | grep 'user'
Abraços Paulo Bettega