Manipulando arquivo com shell script

1. Manipulando arquivo com shell script

Alberto Ricardo da Silva
aricardo

(usa Debian)

Enviado em 10/05/2014 - 19:38h

Pessoal não estou conseguindo rodar este script...

Tem a finalidade de informar a média de tempo gasto nas rajadas de ping. Alguma sugestão?



#!/bin/bash

#echo "Digite IP para teste"
#read ip
ping -c5 127.0.0.1 > resultado.ping


cat resultado.ping | cut -f7 -d " " | grep time | cut -f2 -d "=" > ping.tempo


soma=0

while read line
do

soma=$(($soma+$line))

done < ping.tempo

media=$(($soma/5)

echo $media





  


2. Re: Manipulando arquivo com shell script

Perfil removido
removido

(usa Nenhuma)

Enviado em 10/05/2014 - 20:21h

Você esta querendo somar strings nesse código?


soma=$(($soma+$line))


A variável $line nesse caso vai receber o conteúdo de cada linha e não a sua numeração propriamente dita. Para contar as linhas, use uma variável contador e incremente ela dentro do while.

Um exemplo básico:

((c = soma = 0))
while read line; do
((c += 1))
((soma += c))
# imprime na tela o número da linha + conteúdo
echo $c: $line
done < arquivo

((media = soma / 5))
echo $media




3. Re: Manipulando arquivo com shell script

Alberto Ricardo da Silva
aricardo

(usa Debian)

Enviado em 10/05/2014 - 23:20h

A média é obtida através da soma do conteúdo de cada linha dividido pela quantidade de linhas.


4. Re: Manipulando arquivo com shell script

Denilson Pereira
Denilson-Pereira

(usa Debian)

Enviado em 11/05/2014 - 01:49h

ru4n escreveu:

Você esta querendo somar strings nesse código?


soma=$(($soma+$line))


A variável $line nesse caso vai receber o conteúdo de cada linha e não a sua numeração propriamente dita. Para contar as linhas, use uma variável contador e incremente ela dentro do while.

Um exemplo básico:

((c = soma = 0))
while read line; do
((c += 1))
((soma += c))
# imprime na tela o número da linha + conteúdo
echo $c: $line
done < arquivo

((media = soma / 5))
echo $media



Nossa não sabia que dava pra fazer esse tipo de coisa com shell, algum material ensinando a fazer isso para sugerir?


5. Re: Manipulando arquivo com shell script

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/05/2014 - 14:09h



Nossa não sabia que dava pra fazer esse tipo de coisa com shell, algum material ensinando a fazer isso para sugerir?


Se não me engano a partir da versão 4.x do bash é possível usar sintaxe semelhante do c em shell scripts, não tenho certeza se com versões anteriores (3.x) é possível.

Aqui tem um material básico a respeito de loops:
http://wiki.bash-hackers.org/syntax/ccmd/c_for


6. Re: Manipulando arquivo com shell script

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/05/2014 - 14:16h

aricardo escreveu:

A média é obtida através da soma do conteúdo de cada linha dividido pela quantidade de linhas.


Poderia explicar exatamente o que você precisa fazer? Pelo que entendi você quer pegar alguns números que estão em cada linha e somar. Se for isso, é possível fazer usando regex.

Entretanto, com a parte do código que postei seu script já pode rodar. O resto você pode pesquisar e adaptar.


7. Re: Manipulando arquivo com shell script

Perfil removido
removido

(usa Nenhuma)

Enviado em 11/05/2014 - 14:24h

A propósito, tem muita coisa legal nesse site, para quem é fã de shell script como eu, rs!
http://wiki.bash-hackers.org/syntax/start


8. Re: Manipulando arquivo com shell script

Denilson Pereira
Denilson-Pereira

(usa Debian)

Enviado em 11/05/2014 - 20:13h

ru4n escreveu:



Nossa não sabia que dava pra fazer esse tipo de coisa com shell, algum material ensinando a fazer isso para sugerir?


Se não me engano a partir da versão 4.x do bash é possível usar sintaxe semelhante do c em shell scripts, não tenho certeza se com versões anteriores (3.x) é possível.

Aqui tem um material básico a respeito de loops:
http://wiki.bash-hackers.org/syntax/ccmd/c_for


Acho que sou muito noob, abri a página e assim que olho os códigos da vontade de fechar xD






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts