The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Hvordan kan jeg lese en ikke tekstfil i unix - ELF-64 kjørbar gjenstand arkiv - IA64 alexcol UNIX for Advanced & ekspertbrukere 8 11-07-2008 08:56
Innlegg Shell programmering: Spørsmål om kilden en fil og lese data fra filen ccwq Shell programmering og Skripting 3 08-04-2007 10:28
Les ord fra fil og opprette nye filen med K-skall. bsrajirs Shell programmering og Skripting 4 06-01-2007 12:15
Les XML-fil ram2s2001 Shell programmering og Skripting 2 12-12-2005 12:20
Hvordan lese bestemte linjer i en bulk filen med C fil Programmering rajan_ka1 High Level Programmering 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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 04-25-2008
giorgos193 giorgos193 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 17
Hjelp med awk - leses fra fil

Hei,

Jeg har en fil som følgende:

Code:
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
... og jeg ønsker å trekke ut informasjon om tid. Jeg ønsker å lese filen, lagre tid (av hver linje) til en variabel, fjerner suffikset sekunder og deretter legge det til den forrige verdien. Resultatet vil bli den totale tiden ....

Jeg har prøvd mange ting, men ingen av dem fungerer ... I tilfelle det hjelper, det siste jeg prøvde var

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

echo $TIME
Det er en dum løsning, men jeg tror det kan formidle det jeg ønsker å gjøre ....
Jeg mistenker at det har noe å gjøre med å lese hver linje separetely, men jeg kan ikke finne ut av det ...

Takk på forhånd ...
  #2 (permalink)  
Old 04-25-2008
grumpf grumpf is offline
Registrert bruker
  
 

Bli Dato: mai 2006
Innlegg: 101
dette fungerer for meg:

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

ren shell:

grep Segment file.txt | cut-d:-F2
  #3 (permalink)  
Old 04-25-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4300
Prøv dette:
Code:
awk '
/Segment/{match($3,".");t+=substr($3,RSTART)}
END{print "Totaltime :"t}
' file
Hilsen
  #4 (permalink)  
Old 04-25-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4300
Even:

Code:
awk '/Segment/{t+=$3}END{print "Totaltime :"t}' file
Hilsen
  #5 (permalink)  
Old 04-25-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
For å legge til verdiene, er det nok om du får summen på slutten? Deretter awk er alt du trenger:

Code:
awk '/Segment/ { gsub("secs",""); time += $3 } END { print time }' file.txt
Hvis du virkelig ønsker å sløyfe over den kumulative ganger og gjøre noe som hver i Shell, som vil være noe

Code:
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
Skallet er aritmetiske er heltall bare, så du kan ikke summen tall med brøk-delene i skallet selv. Komme awk å skrive ut både den nåværende og den samlede verdien for hver linje er en fin løsning for dette (og en god mulighet til å demonstrere hvordan du lese flere verdier fra samme linje i skallet).
  #6 (permalink)  
Old 04-25-2008
giorgos193 giorgos193 is offline
Registrert bruker
  
 

Bli Dato: april 2008
Innlegg: 17
Jeg ønsker å takke dere alle for deg rask respons! Alle løsninger er stor! Jeg virkelig setter pris på din innsats!

@ Era: Jeg er virkelig imponert over din "sofistikerte" løsning!

Thanks again!
  #7 (permalink)  
Old 04-29-2008
summer_cherry summer_cherry is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: juni 2007
Sted: Beijing Kina
Innlegg: 1082
Code:
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

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 03:43.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0