![]() |
|
|
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 |
| parseren van een string in een shell script | asutoshch | Programmeren en Shell Scripting | 19 | 05-26-2008 10:18 PM |
| shell script parseren met sed | jjamd64 | UNIX voor Dummies Questions & Answers | 5 | 12-11-2007 04:51 PM |
| Parseren van een regel in shell script | unishiva | Programmeren en Shell Scripting | 3 | 11-01-2007 04:30 PM |
| Hulp bij het parseren van een CSV-bestand met Shell script | mihirk | Programmeren en Shell Scripting | 10 | 06-24-2007 11:58 |
| Parseren van een bestand in shell script | sendhilmani123 | Programmeren en Shell Scripting | 4 | 11-30-2006 02:29 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Shell script voor parseren 300mb logboekbestand ..
ben relatief nieuw voor Shell scripting.
Ik heb een script geschreven voor het ontleden van een groot bestand. De logica is: Naast vele andere nutteloze levensmiddelen, zijn er vele gevallen van <abc> en bijbehorende </ abc> tags. (Ze zijn allemaal goed gesloten) Mijn eis is om een bepaalde tag te vinden (zeg <data> 1234 </ data>) ingesloten ergens tussen <abc> </ abc> tags. Indien gevonden, ik heb op te slaan 4e regel onder de <abc> tag in een tijdelijk bestand. Een typisch log bestand ziet er als volgt uit: ************************ <pqr> ...... enkele gegevens aantal andere gegevens ......... </ PQR> wat tekstgegevens ........... <abc> blah blah ..... <id> 12345 </ id> blah ... ...... <data> 1234 </ data> </ abc> ........ ..... ..... <abc> blah blah ..... <id> 12345 </ id> blah ... ... </ abc> .......... <rst> ... ... </ rst> wat tekst gegevens ... **************************** Output van het script moet worden <id> 12345 </ id> opgeslagen in een tijdelijk bestand. Het script Ik gebruik is: ******************** rm-f temp.log filename \u003d $ 1 OK \u003d 0 terwijl lees Lijn1 doen if [ "$ Lijn1" \u003d "<abc>"]; dan OK \u003d 1 fi if [ "$ OK"-eq 1]; dan echo $ Lijn1>> temp_file fi if [ "$ Lijn1" \u003d "</ abc>"]; dan OK \u003d 0 fi if [ "$ OK"-eq 0]; dan if [-f temp_file]; dan terwijl lees regel2 doen if [ "$ line2" \u003d "<data> 1234 </ data>"]; dan kat temp_file | awk '(if (NR \u003d\u003d 4) (print ($ 0)))'>> temp.log fi gedaan <temp_file rm temp_file fi fi gedaan <$ filename.log ******************************* De <abc> </ abc> tags komen in het laatste gedeelte in het algemeen (niet altijd), ergens rond 500.000 lijnen na ... en gewoonlijk, dossier heeft ongeveer 700.000 lijnen. Het script draait, en blijft lopen, en ik vind 2 records die in de eerste lijnen opgeslagen in het tijdelijk bestand. Maar na enkele minuten 6-7, script eindigt abrupt, zeggende: scriptname.sh test: argument verwacht. Kan iemand me helpen op dit? |
|
||||
|
Script werkt niet ..
Citaat:
Na het lezen van uw reactie, lees een aantal artikelen op awk. Een of andere manier is het script nog steeds niet werken, en eindigt zeggen .. ********************** awk: record `/ respons> Vrij :...' 00:27 lang record nummer 22 ********************** Ik heb hoge verwachtingen nu op u Bedankt |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|