![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Analysering af fil til rapporten Generation (String parsing og opsplitning) | umar.shaikh | Shell Programmering og Scripting | 8 | 03-02-2009 01:38 AM |
| parsing fast længde område med yacc / bison | sungita | Højtstående Programmering | 1 | 01-27-2009 11:27 AM |
| Læs en string med ledende rum og finde længden af strengen | dayamatrix | UNIX for dummyer Spørgsmål & svar | 2 | 11-13-2008 10:08 AM |
| Parse en variabel længde record | Barb | UNIX for dummyer Spørgsmål & svar | 17 | 10-01-2004 08:37 AM |
| Parse data og beholde den fulde længde af variable | app4dxh | Shell Programmering og Scripting | 3 | 11-22-2002 12:04 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Analysering 286 længde Tegnstreng
Hej Venner,
Jeg har. Txt-fil, der har 13.000 registreringer. Hver record er 278 tegn lang. Jeg bruger følgende kode til at udtrække strengen og det tager næsten 10 minutter. Ethvert forslag, tak. cat filename.txt | mens læse linje gøre f1 \u003d `echo $ line | awk '(print substr ($ 1,1,9))'` f2 \u003d `echo $ line | awk '(print substr ($ 1,10,20))'` f3 \u003d `echo $ line | awk '(print substr ($ 1,30,50))'` f4 \u003d `echo $ line | awk '(print substr ($ 1,80,10))'` F5 \u003d `echo $ line | awk '(print substr ($ 1,90,50))'` F6 \u003d `echo $ line | awk '(print substr ($ 1,140,10))'` F7 \u003d `echo $ line | awk '(print substr ($ 1,150,50))'` F8 \u003d `echo $ line | awk '(print substr ($ 1,200,10))'` F9 \u003d `echo $ line | awk '(print substr ($ 1,210,50))'` F10 \u003d `echo $ line | awk '(print substr ($ 1,260,10))'` F11 \u003d `echo $ line | awk '(print substr ($ 1,270,8))'` F12 \u003d `echo $ line | awk '(print substr ($ 1,278,8))'` s1 \u003d `echo $ f1" | "$ f2" | "$ f3" | "$ f4" | "$ F5" | "` s2 \u003d `echo $ f6" | "$ F7" | "$ F8" | "` s3 \u003d `echo $ F9" | "$ F10" | "` s4 \u003d `echo $ F11" | "$ F12« echo $ s1 $ s2 $ s3 $ s4>> FinalResult.txt gjort |
|
||||
|
En enklere
Metoden er at skabe script parse.awkCode:
{
f1=substr($1,1,9);
f2=substr($1,10,20);
f3=substr($1,30,50);
f4=substr($1,80,10);
f5=substr($1,90,50);
f6=substr($1,140,10);
f7=substr($1,150,50);
f8=substr($1,200,10);
f9=substr($1,210,50);
f10=substr($1,260,10);
f11=substr($1,270,8);
f12=substr($1,278,8);
OFS="|";
print f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12;
print "\n";
}
Code:
awk -f parse.awk filename.txt > FinalResult.txt |
|
|||||
|
|
||||
|
Hi ppl ..
hvad nu hvis jeg har den linje som denne En BCD hvilket tyder på, at første felt er f1 \u003d A, f2 \u003d f3 \u003d BCD dvs andet felt har 6 blanke tegn. Så nu hvis jeg bruger ovenstående script, jeg er ikke i stand til at få de områder i den pågældende sag. Kan du venligst foreslår i så fald, hvordan man griber det an? Cheers Amit |
|
|||||
|
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|