![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
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 |
| Analysere gjennom fil og print output hjelp awk eller sed script | cdfd123 | Shell programmering og Skripting | 4 | 03-03-2008 12:07 |
| parse tekstfil | craggm | Shell programmering og Skripting | 9 | 02-27-2007 02:13 |
| parse tekstfil | klick81 | Shell programmering og Skripting | 3 | 12-18-2006 12:04 |
| Parse Tekstfil og sende post | Amruta Pitkar | UNIX for Dummies Spørsmål og svar | 12 | 08-11-2006 04:56 |
| Hvordan analysere en tekstfil med \ 034 i feltet og \ 035 i slutten av meldingen skilletegn? | indianya | Shell programmering og Skripting | 1 | 08-26-2005 10:20 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
parse gjennom en tekstfil og utgang mange
Hei, alle sammen
Inndatafilen Mønsteret er som nedenfor: Begynn Object1 txt1 slutt ; Begynn Object2 txt2 slutt ; ... Jeg ønsker å analysere denne filen til Object1.txt, Obeject2.txt ... hver inneholder en uttalelse fra "Beggin 'til'; ', f.eks object1.txt inneholder: Begynn object1 txt1 slutt ; --------------------------- Noen tanker? også, Spørsmål 1. noen Awk eller SED kan søke etter et mønster på tvers av mange linjer? 2. hvordan kan jeg output mange filer? 3. Skal jeg flytte denne tråden til "Shell Programmering og Scripting"? På forhånd takk ![]() |
|
||||
|
Hvis du bruker bash Du kan prøve noe sånt som dette, veldig enkelt og sikkert mange fallgruver. Men siden du behandler kildekoden er det syntaktiske regler som kan forventes å bli fulgt. Det bare kontrollerer for BEGIN ord og trinn filnavnet indeksen når oppstått.
Code:
lakris@ubuntu:~/projekt/scripts$ cat projekt.txt Begin Object1 txt1 end ; Begin Object2 txt2 end ; Begin Object3 txt3 end ; Begin Object4 txt4 end ; lakris@ubuntu:~/projekt/scripts$ cat splitit.sh #!/bin/bash cnt=0 while read line;do [[ "$line" =~ "Begin" ]] && cnt=$(($cnt+1)) echo $line goes into Object$cnt.txt done < projekt.txt lakris@ubuntu:~/projekt/scripts$ ./splitit.sh Begin Object1 goes into Object1.txt txt1 goes into Object1.txt end goes into Object1.txt ; goes into Object1.txt Begin Object2 goes into Object2.txt txt2 goes into Object2.txt end goes into Object2.txt ; goes into Object2.txt Begin Object3 goes into Object3.txt txt3 goes into Object3.txt end goes into Object3.txt ; goes into Object3.txt Begin Object4 goes into Object4.txt txt4 goes into Object4.txt end goes into Object4.txt ; goes into Object4.txt lakris@ubuntu:~/projekt/scripts$ / Lakris |
|
||||
|
da den første Begin statement (aaaaa) ender opp i Object1.txt den andre (bbbbbb) i Object2.txt osv. Ønsker du å ha dem heter Object-aaaaa.txt, Objekt-bbbbbb.txt etc?
Ta en titt på mens leser linje konstruere. Du kan dele det opp å lese mer enn én variabel ... eller du kan behandle linje som en matrise. ![]() |
|
||||
|
Sitat:
Takk |
![]() |
| Hugseliste |
| Tags |
| linux, ubuntu |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|