![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| 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 |
| Fjern whitespaces mellom kommadelte felt fra fil | nitinbjoshi | UNIX for Dummies Spørsmål og svar | 2 | 06-14-2008 09:14 |
| Parse en streng i XML-filen med shell script | ayhanne | Shell programmering og Skripting | 46 | 01-09-2008 12:33 |
| søke etter innholdet i mange fil og skrive ut filen bruker shell script | cdfd123 | Shell programmering og Skripting | 3 | 10-07-2007 11:17 |
| Hvordan analysere config variabler fra ekstern fil til shell script | pradsh | Shell programmering og Skripting | 2 | 07-09-2007 03:21 |
| Splitting kommadelte verdier inn i en matrise | tmarikle | Shell programmering og Skripting | 3 | 06-24-2005 06:50 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Unix shell script til å analysere innholdet i kommaseparert fil
Dear all,
Jeg har en kommaseparert fil. 1. Den første linjen i filen (overskriften) skal ha 4 komma (5 felt). 2. Den siste linjen i filen skal ha 1 komma (2 felt). Pls hjelpe meg i å sjekke denne tilstanden i et shell script. Og antall linjer mellom den første linjen og siste linje av filen, bør samsvare med det siste feltet i den første og siste linje. Det vil si at det siste feltet på første og siste linje wil har et nummer, skal som samsvarer med (antall linje i filen) -2. Pls hjelpe meg med dette. Eksempel fil: QDB_2008.txt 1.1,20070427151500,99567,99669,0009 00001,20070427,00567,6012345671,2081, jeg 00002,20070427,00568,6012345672,2054, jeg 00003,20070427,00569,6012345673,2063, jeg 00004,20070427,00570,6012345674,2081, D 00005,20070427,00571,6012345675,2054, D 00006,20070427,00572,6012345676,2063, D 00007,20070427,00573,6012345677,2081, U 00008,20070427,00574,6012345678,2054, U 00009,20070427,00575,6012345679,2063, U 101.1.0,0009 # Hilsen, Krishna |
|
||||
|
Code:
awk -F, '
NR==1 { expect=$NF; fields=NF; last=0 }
NF != fields { last=NR;
if (NR != 2) print NR ": wrong number of fields: " $0;
if ($NF != expect) print NR ": last field value not the same as on first line"
if ($NF != NR-2) print NR ": last field not equal to line count minus two"
if ($NF != expect) print NR ": line count from first line not identical"
}
last > 0 && NR > last { print NR ": wrong number of fields: " $0 }' QDB_2008.txt
|
|
||||
|
Hei,
Ovennevnte koden fungerer fint. Jeg vil kjøre skriptet etter tilføyer newline tegnet på slutten av filen. Pls utleie meg vite hvor å føye til et newline tegn på slutten av filen, hvis den ikke eksisterer. Hilsen, Krishna |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|