![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Hur kan jag läsa en text fil i UNIX - ELF-64 körbara objekt fil - IA64 | alexcol | UNIX för avancerade & Expertanvändare | 8 | 11-07-2008 08:56 |
| Post Shell programmering: Fråga om källan en fil och läsa data från filen | ccwq | Shell-programmering och Skript | 3 | 08-04-2007 11:28 |
| Läs ord från filen och skapa ny fil med hjälp av K-skal. | bsrajirs | Shell-programmering och Skript | 4 | 06-01-2007 01:15 |
| Läs XML-fil | ram2s2001 | Shell-programmering och Skript | 2 | 12-12-2005 12:20 |
| Hur man läser vissa linjer i en bulk filen med C-fil programmering | rajan_ka1 | High Level Programming | 10 | 11-10-2005 03:29 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Hjälp med awk - läs från fil
Hej, Jag har en fil som de följande: Kod:
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 ... och jag vill extrahera information om temne. Jag skulle vilja läsa filen, spara tid (i varje rad) för en variabel, bort suffixet sek och sedan lägga till den föregående värde. Resultatet blir den totala tiden .... Jag försökte många saker men ingen av dem fungerar ... Om det hjälper, det sista jag försökte var Kod:
TIME="`awk '/Segment/ {print $3%secs + $TIME} ' log.txt`"
echo $TIME
Det är en dum lösning, men jag tror att det kan förmedla vad jag vill göra .... Jag misstänker att det har något att göra med att läsa varje rad separetely, men jag kan inte lista ut det ... Tack på förhand ... |
|
||||
|
För att lägga till värden, är det nog om du få den summan i slutet? Sedan awk är allt du behöver: Kod:
awk '/Segment/ { gsub("secs",""); time += $3 } END { print time }' file.txt
Om du verkligen verkligen vill slinga över den kumulativa tider och göra något som var i tanken, det skulle vara något liknande Kod:
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
Skalet är aritmetiska anläggningar heltal bara, så du kan inte summan nummer med fraktionerad delar i tanken själv. Få awk för att skriva ut både den nuvarande och den ackumulerade värdet för varje rad är ett trevligt sätt för att (och ett bra tillfälle att visa hur man kan läsa flera värden från samma linje i tanken). |