|
From: | Julio C. Neves |
Subject: | Re: [shell-script] Duvida para atribuir valor a variavel |
Date: | Mon, 11 Jul 2016 10:54:53 -0300 |
Ah sim então eu tinha entendido :) o 'grep -c' retorna o número de linhas casadas,
não importa o número de casamentos por linha.
A opção -o retorna cada cadeia pesquisada, uma por uma linha.
Até aí estamos entendidos :)
Pelo que o Rodrigo postou, ele quer contar o número de linhas da saída
de um grep 'simples' sem opções
varerror=$((cat ../var/error.log |grep $DATA | wc -l))
então eu pensei que ele poderia usar a opção -c
$ grep a <<<abracadabra
abracadabra
$ grep a <<<abracadabra | wc -l
1
$ grep -c a <<<abracadabra
1
nesse caso 'grep $DATA /var/error.log | wc -l' deve retornar o mesmo que
'grep -c $DATA /var/error.log' , ou não? Mestre, se vc responder 'não' vou precisar
de um desenho rs
Abraços Paulo Bettega
On 10-07-2016 19:49, 'Julio C. Neves' address@hidden [shell-script] wrote:
>
>
> Fala Paulo, o grep -c não mostra a linha, mostra só o número de linhas que possuem a cadeia pesquisada.
>
> Se a cadeia puder ocorrer mais de uma vez na linha, o correto seria fazer:
> grep -o REGEX ARQUIVO | wc -l
>
> Como estou no celular, não dá para mostrar, mas experimente fazer:
>
> grep -c a <<< abracadabra
>
> E depois:
>
> grep -o a <<< abracadabra | wc -l
>
> Em 10 de jul de 2016 19:05, "address@hidden <mailto:address@hidden> [shell-script]"
> <address@hidden <mailto:address@hidden>> escreveu:
>>
>>
>>
>> Olá mestre Julio, não entendi :) nesse caso de uma linha possuir mais de uma data,
>> o 'grep -c' vai somar cada casamento ao invés de considerar uma linha?
>> A saída normal do grep, mesmo que haja dois casamentos na mesma linha, é mostrar
>> apenas uma vez a linha, não? Agora fiquei na dúvida rs vou pegar um arquivo aqui
>> pra testar.
>> Abraços Paulo Bettega
>>
>>
>> On 10-07-2016 00:10, 'Julio C. Neves' address@hidden <mailto:address@hidden> [shell-script] wrote:
>> >
>> >
>> > Fala Paulo,
>> > A opção -c devolve a qtd de linha que têm a cadeia. Assim sendo, se alguma linha possuir mais de uma data,
>> > dará zebra.
>> >
>> > Em 9 de jul de 2016 22:02, "address@hidden <mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>> [shell-script]"
>> > <address@hidden <mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>>> escreveu:
>> >
>> > __
>>
>> >
>> >
>> > Olá Rodrigo, mais um pitaco, se for só pra pegar o número de linhas, o grep
>> > tem a opçao -c que retorna o número de linhas casadas por arquivo.
>> > Pelo que vc postou a pesquisa é só em um arquivo então "grep -c $DATA /var/error.log"
>> > deve resultar o mesmo que "grep $DATA /var/error.log | wc -l"
>> >
>> > Abraços Paulo Bettega
>> >
>> > On 09-07-2016 18:39, Rodrigo Cunha address@hidden <mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>>
>>
>> > [shell-script] wrote:
>> > >
>> > >
>> > > srs.
>> > > tenho um script com a variavel DATA:
>> > > DATA="" +%Y%m%d`
>> > > e quero criar uma outra variavel utilizando uma pipeline que "grepa" o valor da variavel $DATA em um
>> > arquivo.
>> > > Testei da forma abaixo mas não consegui, alguém sabe como fazer isso?!
>> > >
>> > > varerror=$((cat ../var/error.log |grep $DATA | wc -l))
>> > >
>> > >
>> > > --
>> > > Atenciosamente,
>> > > Rodrigo da Silva Cunha
>> > >
>> > >
>> > > ----------------------------------------------------------
>> > > Enviado por: Rodrigo Cunha <address@hidden <mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>>>
>> > > ----------------------------------------------------------
>> >
>> >
>> > ----------------------------------------------------------
>> > Enviado por: "Julio C. Neves" <address@hidden <mailto:address@hidden>>
>> > ----------------------------------------------------------
[Prev in Thread] | Current Thread | [Next in Thread] |