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

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

Re:_[shell-script]_Concatenação_e_soma


From: Felipe Kellermann
Subject: Re:_[shell-script]_Concatenação_e_soma
Date: Mon, 28 Jul 2003 18:15:45 -0300 (BRT)

On Mon, 28 Jul 2003 12:55pm  -0700, moysespr wrote:

> -----------log1.txt
> 461 /lista1.luizao.com.br/logo.gif
>
> -----------log2.txt
> 424 /lista1.luizao.com.br/logo.gif
>
>
> 1.Como faço para ler log1.txt, linha por linha,da primeira à enésima
> linha? Para cada linha pegaria o valor e procuraria a string em um
> arquivo de resultado (LOG):

        head -n n log1.txt
        Pega da primeira até a n, usa `set' para separar os dois dados.


> 2. se não encontrada faria a inserção da string e do valor em LOG
> 3. se existisse, somaria o valor existente com o valor vindo de
> log1.txt e colocaria o resultado na posição do resultado antigo em
> LOG

$ cat log2.txt # para testar, procuramos logo.gif$ (seria "$2"), segue:
424 /lista1.luizao.com.br/logo.gif
$ r=$(grep -n 'logo.gif$' log2.txt) && set $r && echo $((${1#*:}+1)) $2
425 /lista1.luizao.com.br/logo.gif

        Aqui você vai usar a expressão que resultou a primeira busca, usei
esta apenas como exemplo, basta juntar as duas e usar o primeiro parâmetro
da primeira busca aqui. O -n é uma opção padrão que vai te retornar linha
e resultado, na forma ``linha:resultado''. Se for verdadeiro, separamos os
resultados novamente e fazemos o primeiro parâmetro sem linha mais um. E
agora que já temos o novo resultado e linha para trocar `${1%:*}' nós só
precisamos fazer a troca, pode ser com o ed. Se não encontrar na segunda
busca, precisamos direcionar a saída do último echo para log2.txt,

-- 
Felipe Kellermann


reply via email to

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