![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Verwijder whitespaces tussen kommagescheiden velden uit bestand | nitinbjoshi | UNIX voor Dummies Questions & Answers | 2 | 06-14-2008 09:14 |
| Parse string in een XML-bestand met shell-script | ayhanne | Programmeren en Shell Scripting | 46 | 01-09-2008 12:33 |
| zoeken naar de inhoud in vele bestandsformaten en print dat bestand met shell script | cdfd123 | Programmeren en Shell Scripting | 3 | 10-07-2007 11:17 PM |
| How to parse config variabelen uit externe bestand naar shell script | pradsh | Programmeren en Shell Scripting | 2 | 07-09-2007 03:21 PM |
| Splitsing door komma's gescheiden waarden in een array | tmarikle | Programmeren en Shell Scripting | 3 | 06-24-2005 06:50 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Unix shell script te parsen van de inhoud van een komma-gescheiden bestand
Dear All,
Ik heb een komma-gescheiden bestand. 1. De eerste regel van het bestand (kop), moet er 4 komma (5 velden). 2. De laatste regel van het bestand moet 1 komma (2 velden). Pls me helpen bij de controle op deze aandoening in een shell script. En het aantal lijnen tussen de eerste lijn en de laatste regel van het bestand, moet overeenkomen met het laatste veld van de eerste en de laatste regel. Dat is het laatste gebied van de eerste en de laatste regel wil hebben een nummer, dat moet overeenkomen met (nummer van de regel in het bestand) -2. Pls help me met dit. Voorbeeld dossier: QDB_2008.txt 1.1,20070427151500,99567,99669,0009 00001,20070427,00567,6012345671,2081, ik 00002,20070427,00568,6012345672,2054, ik 00003,20070427,00569,6012345673,2063, ik 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 # Groeten, 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
Iets verzwaren, maar hopelijk tenminste je begon. |
|
||||
|
Hoi,
De bovenstaande code werkt prima. Ik wil dat het script na toevoeging newline karakter aan het einde van het bestand. Pls laat me weten hoe append een newline karakter aan het einde van het bestand, als het niet bestaat. Groeten, Krishna |
|
||||
|
Dit voegt een nieuwe regel altijd aan het einde van een bestand, terwijl de OP wil append een newline karakter aan het einde van het bestand, alleen als het niet bestaat.
Groeten |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|