The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Como não posso ler um arquivo de texto no Unix - ELF-64 objeto arquivo executável - IA64 alexcol UNIX & avançada para usuários experientes 8 11-07-2008 08:56
Post Shell programação: Pergunta sobre a fonte de um arquivo e ler dados a partir do arquivo ccwq Programação Shell Script e 3 08-04-2007 11:28
Ler palavras do arquivo e criar novos arquivos utilizando K-shell. bsrajirs Programação Shell Script e 4 06-01-2007 01:15
Ler arquivo xml ram2s2001 Programação Shell Script e 2 12-12-2005 12:20
Como ler linhas específicas em um arquivo usando a granel arquivo de programação C rajan_ka1 Alto Nível de programação 10 11-10-2005 03:29

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-25-2008
giorgos193 giorgos193 is offline
Usuário
  
 

Join Date: Apr 2008
Lugares: 17
Ajuda com awk - leia a partir do arquivo

Oi,

Eu tenho um arquivo como o seguinte:


Código:
Starting to process segment 0 (and symmetry related segments)
	Number of (cancelled) singularities: 0
	Number of (cancelled) negative numerators: 0
	Segment 0: 5.49secs
Starting to process segment 1 (and symmetry related segments)
	Number of (cancelled) singularities: 0
	Number of (cancelled) negative numerators: 0
	Segment 1: 10.01secs
Starting to process segment 2 (and symmetry related segments)
	Number of (cancelled) singularities: 0
	Number of (cancelled) negative numerators: 0
	Segment 2: 7.82secs
Starting to process segment 3 (and symmetry related segments)
	Number of (cancelled) singularities: 0
	Number of (cancelled) negative numerators: 0
	Segment 3: 5.31secs

... e gostaria de extrair as informações sobre o tempo. Gostaria de ler o ficheiro, guarde o tempo (de cada linha) para uma variável, retire o sufixo secs e depois adicioná-lo ao valor anterior. O resultado será o total de tempo ....

Eu tentei muitas coisas, mas nenhum deles funciona ... Em caso de ajuda, a última foi uma Tentei


Código:
 
TIME="`awk '/Segment/ {print $3%secs + $TIME} ' log.txt`"

echo $TIME

É uma solução boba, mas acho que ele pode transmitir aquilo que eu quero fazer ....
Desconfio que tenha algo a ver com a leitura de cada linha separetely, mas eu não pode figurar que para fora ...

Muito obrigado de antemão ...
  #2 (permalink)  
Old 04-25-2008
grumpf grumpf is offline
Usuário
  
 

Join Date: May 2006
Lugares: 101
isso funciona para a minha:

awk-F ":" '/ Segmento / (print $ 2)' file.txt
5.49secs
10.01secs
7.82secs
5.31secs

pura casca:

Segmento ficheiro.txt grep | cut-d:-f2
  #3 (permalink)  
Old 04-25-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.342
Tente este:
Código:
awk '
/Segment/{match($3,".");t+=substr($3,RSTART)}
END{print "Totaltime :"t}
' file

Atenciosamente
  #4 (permalink)  
Old 04-25-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2007
Mensagens: 4.342
Mesmo:


Código:
awk '/Segment/{t+=$3}END{print "Totaltime :"t}' file

Atenciosamente
  #5 (permalink)  
Old 04-25-2008
era era is offline Forum Advisor  
Herder do Inútil Gatos (On Sabático)
  
 

Join Date: Mar 2008
Localização: / lá / é / só / bin / sh
Posts: 3.652
Para adicionar os valores, é suficiente se você receber a soma no final? Então awk é tudo que você precisa:


Código:
awk '/Segment/ { gsub("secs",""); time += $3 } END { print time }' file.txt

Se você realmente deseja verdadeiramente loop acumulado ao longo dos tempos e fazer algo que cada um no reservatório, que seria algo como


Código:
awk '/Segment/ { gsub ("secs",""); time += $3; print $3, time } file.txt |
while read THISTIME SUMTIME; do
  echo This time, we got $THISTIME
  echo Sum so far is $SUMTIME
done

O reservatório da aritmética instalações são inteiros só, por isso não pode soma números com fraccional partes no próprio reservatório. Como awk para imprimir tanto o actual eo valor acumulado para cada linha é uma boa solução para isso (e uma boa oportunidade para demonstrar a ler múltiplos valores a partir da mesma linha na shell).
  #6 (permalink)  
Old 04-25-2008
giorgos193 giorgos193 is offline
Usuário
  
 

Join Date: Apr 2008
Lugares: 17
Quero agradecer a todos pela resposta rápida que você! Todas as soluções são ótimos! Eu realmente aprecio o seu esforço!

@ Época: Estou realmente impressionado com o seu "sofisticados" solução!

Obrigado novamente!
  #7 (permalink)  
Old 04-29-2008
summer_cherry summer_cherry is offline Forum Advisor  
Usuário
  
 

Join Date: Jun 2007
Localização: Beijing China
Mensagens: 1.092

Código:
sed '/Segment/ s/secs//' a > b
awk 'BEGIN{FS=":"}
$0 ~ /Segment/ {
if(t=="")
{
	t=$2
	print
}
else
{
	t=t+$2
	print $1" "t
}
}
$0 !~ /Segment/ {print}
' b
rm b

Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 03:11.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0