Senhores,
Já faz um tempão que não mexia com shell e hj caiu uma bronca aqui pra
mim e tenho certeza que vocês podem me ajudar.
Dado o arqlista.txt preciso calcular a média dos valores da coluna que
se encontra entre as posições 250 e 255, tentei usar o awk mas tenho
alguns problemas pois as co
se a coluna se encontra entre a coluna 250 e a 255, vc pode usar cut
se nao me engano ficaria assim:
$ echo 123456 | cut -c3-5
345
On 5/4/06, williansantunes <[EMAIL PROTECTED]> wrote:
>
> Senhores,
>
> Já faz um tempão que não mexia com shell e hj caiu uma bronca aqui pra
> mim e tenho cer
Funcionou legal, agora, não querendo abusar, estou usando "vários" awk
para selecionar o que preciso, porém estou vendo que com o sed acho que
consigo "encurtar" o caminho.
Isto vai me ajudar muito, mas o que preciso mesmo são dos campos "BIBL"
(que pode variar o tamanho) o próprio campo con
BIBL ? onde tem BIBL nesse arquivo ?
O que define a posição de cada campo nesse arquivo ? é uma linha por registro ?
On 5/4/06, Mauricy Maiorino <[EMAIL PROTECTED]> wrote:
> Funcionou legal, agora, não querendo abusar, estou usando "vários" awk
> para selecionar o que preciso, porém estou vend
explicando melhor:
$ cat seq
12345
12345
12345
12345
12345
$ cat seq | cut -c3-5
345
345
345
345
345
On 5/4/06, Alfredo Casanova <[EMAIL PROTECTED]> wrote:
>
> se a coluna se encontra entre a coluna 250 e a 255, vc pode usar cut
>
> se nao me engano ficaria assim:
> $ echo 123456 | cut -c3-
Muitíssimo Obrigado!!
-
Abra sua conta no Yahoo! Mail - 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz.
[As partes desta mensagem que não continham texto foram removidas]
---
Quase one liner...
Soma=$(cut -c250-255 arqlista.txt | paste -sd+ | bc)
# a Contagem de registros é que atrapalha o one liner:
QtdReg=$(wc -l arqlista.txt | tr -s ' ' | cut -f2 -d' ')
echo $((Soma / QtdReg))
Se quiser fazer tudo junto:
echo $(($(cut -c250-255 arqlista.txt | paste -sd+ | bc) /
BIBL tinha em outro exemplo que enviei, mas seguindo o exemplo abaixo, é
uma linha por registro e a posição de cada campo é definida por estes
"brancos". Isto é um log de impressão, e os nomes variam. Não sei se fui
claro!!
Mauricy
Tiago Barcellos Peczenyj escreveu:
> BIBL ? onde tem BIBL
Me tire algumas duvidas...
Os logs são sempre nesse formato?
Os campos que você precisa são sempre os mesmos?
Em que ordem você quer que esses campos apareçam?
Você vai usar isso em um script ou vai rodar em linha de comando pra
modificar o arquivo?
[]'s
Reinaldo
--- Em shell-script@yahoogru
Pessoal,
Na segunda coluna deste meu arquivo eu tenho a hora no seguinte formato 10:53:12, gostaria de calcular a média a cada 5 minutos, ou seja a cada execução do script só traria a média somente das linhas dos últimos 5 minutos.
#!/bin/sh
datapoint=`awk '{A+=substr($0,250,6)} END{print A/NR
A sua ideia de documentaçã é muito boa, porem eu não vejo nescessidade de
tanto trabalho, tenho que concorda com o amigo que o sistema de busca da
yahoo é muito eficiente, e outra saindo da lista para ir para outro site,
tem que ver se as regras permitem isso querendo ou não tem muita propiedade
ufa...
One liner (muito dificil, queria ter usado o dc para isso, calcular a
media em pilha mas não sei fazer isso em notação polonesa reversa, se
alguem quiser sera bem vindo)
cut -c250-255 arquivo.txt | egrep -n '[0-9]*' | tac | tr '\n' ' ' |
sed 's/[0-9]*/\/&/;s/:/\n/;s/[0-9]*://g' | tac |
Funcionou legal, agora, não querendo abusar, estou usando "vários" awk
para selecionar o que preciso, porém estou vendo que com o sed acho que
consigo "encurtar" o caminho.
Isto vai me ajudar muito, mas o que preciso mesmo são dos campos "BIBL"
(que pode variar o tamanho) o próprio campo con
Parece que todos os campos sao separados por " " (espaço em branco),
voce poderia fazer:
$ cat arquivo.log | tr -s " " | tr " " "+" | awk -F+ '{ print $1 "\t"
$9 "\t" $11 }'
O que voce precisa trabalhar agora é os numeros dos $, o numero
representa o "campo" que voce quer exibir e este estara
E ae pessoal,
vamos lah tentar acertar esse sed.
[EMAIL PROTECTED] tmp]$ cat a.txt
IBL printer2
hppibr_[JBM05D]-BIBLIOTECA(acct=BIBL,user=BIBL,copies=2,hppibr,simplex,landscape,usletter).PCLprintsrv
Apr 1 2006 02:48:53 Apr 1 2006 03:04:05
hppibr_[JBM05D
Consegui uma forma só com SED
fonte: http://www.aurelio.net/sed/1liners-ptBR.txt
$ cut -c6-8 txt | sed '1!G;h;$!d;$='| tr -d '\n' | sed
's/[0-9]*/\/&(/;s/$/)/;s/ / + /g;s/ +//;s/\(\/[0-9]*\)\(.*\)/ \2\1/' |
bc -li
entretanto se eu faço algo um pipe para bc -l da erro
alguem sabe por que ? oco
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1
Salve!
Não costumo responder a solicitações sem código. Não vi nenhuma tentativa.
Entretanto, como fã do awk me vejo forçado a pelo menos esclarecer uma
coisa: o awk trabalha sim com posições fixas.
Ver no manual do awk a variável FIELDWIDTHS.
A
17 matches
Mail list logo