![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen! |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| CEP g. "Business Rules" | iBot | Complex Event Processing RSS Nyheter | 0 | 10-23-2007 12:00 |
| Reglene | VRN | Post her for å kontakte Site-administratorer og moderatorer | 2 | 03-21-2006 09:25 |
| Regler | Tux | Post her for å kontakte Site-administratorer og moderatorer | 2 | 01-20-2005 02:48 |
| reglene? | Xskwizitboi | UNIX for Dummies Spørsmål og svar | 1 | 12-02-2004 01:46 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Syntaks / Regler (Kan jeg gjøre dette?)
Jeg har en liten kode som jeg trenger å iterate 24 ganger (for hver time i døgnet ).... Her er hva det ser ut nå ... Code:
while read hour file; do
if [ $hour -eq 00 ]; then
count=`awk -F, 'BEGIN { count=0 } ............. { count++ } END { print count }' $file`
hourly01=`expr $hourly1 + $trade_count`
elif [ $hour -eq 01 ]; then
count=`awk -F, 'BEGIN { count=0 } ............. { count++ } END { print count }' $file`
hourly02=`expr $hourly2 + $trade_count`
..................
fi
done < ls.txt
Som du ser er det enkle, og iterates igjen og igjen, men unødvendig (24 ganger) ... Kan jeg bytte ut alle tallene med en variabel ... liker slikt .. ikke ta meg koden bokstav for bokstav, bare ta ideen og fortelle meg om det kan gjøres .. Code:
for (x=00; x<=23; x++) {
if [ $hour -eq $x ]; then
count=`awk -F, 'BEGIN { count=0 } ............. { count++ } END { print count }' $file`
hourly$x=`expr ${hourly}$x + $trade_count`
fi
}
Dvs' tanken .. Jeg vet at jeg ikke bruke en UNIX for-løkke, Men jeg begynte å lære UNIX og jeg ikke se hva for ser ut som i unix enda) .. Men kan jeg skrive den midtre delen (hver forekomst av $ x) slik at jeg skrev det her? Sist endret av yongho; 06-22-2005 på 05:48.. |
|
||||
|
awk støtter arrays. Den, det Code:
'{ count=0 } ............. { count++ } END { print count }'
del kunne skrive til en matrise element i stedet for "print count". Istedenfor å gå gal over dette, mener en god bok som O'Reilly boken "sed & Awk 'Hvis du er på Manhattan, Barnes and Noble har det. Kort svar: i awk kan du gjøre hva du spør. Alt i ett stykke awk koden. |
|
||||
|
Jeg ser
Nå er jeg vurderer å gjøre det på den måten du foreslo, men jeg har et annet spørsmål om den foreslåtte metoden.
Mitt problem: Opprinnelig Jeg kjørte omtrent slik ls-al | grep juni 22 | cut-c49-100>> myLs.txt å gi meg tid og filnavnet for alle filer for 22 juni i en tekstfil. Med denne tekstfilen Jeg begynte awking. Du er noe som tyder på at i stedet for å bruke mens les time fil at jeg begynner awk umiddelbart, for å unngå å gjenta alt det som jeg gjorde. Siden tekstfil med LS holder Filnavnene av CSV-filer, jeg trenger å kunne, på et tidspunkt, awk disse filene til å utføre noen telle utregninger. Jeg tror ikke jeg kunne bruke en nestet awk .. awk innenfor en awk å åpne disse filene finnes i den første awk. (eller kan jeg?). Jeg skal plukke opp boken over helgen, takk. Sist endret av yongho; 06-23-2005 på 10:53.. |
|
||||
|
awk støtter system ()-funksjonen, akkurat som i C og php.
Du kan lage en dynamisk streng, så pass den til systemet skal opprette utgang. Det er ikke som awk er bedre enn script eller omvendt - det er like ille å fortsette å bruke flere forskjellige verktøy og hoppende frem og tilbake mellom dem. IMO. |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|