![]() |
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 |
| ld: fatal: virksomhedsudflytninger forblive mod allocatable men ikke-skrivbar sektioner | tdallagn | Sun Solaris | 0 | 05-21-2008 07:58 AM |
| ekstrakt flere dele af en fil | rgentis | UNIX for Advanced & Ekspertsøgning Brugere | 1 | 03-18-2008 08:40 PM |
| hentes flere linjer på flere steder i en fil | dala | Shell Programmering og Scripting | 8 | 03-14-2008 03:28 PM |
| Handle Konfiguration Filer med samme navn af Parameter i flere sektioner | potro | Shell Programmering og Scripting | 7 | 03-05-2008 11:36 AM |
| Udpak en fil form. tar.gz uden uncompressing. tar.gz filen | balireddy_77 | Shell Programmering og Scripting | 2 | 07-10-2007 04:23 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
ekstrakt flere dele af fil
Jeg har en fil, som jeg har brug for at parse flere afsnit fra den pågældende fil.
Filen indeholder flere linjer, der starter med ST (Abunch af data) Så filen indeholder flere linjer, der starter med SE (Abunch af data) SE * 30 * 0001 ST * 810 * 0002 Jeg har brug for alle de strækninger mellem og herunder disse. De fakturaer. Fakturaen starter med ST linje og slutter med SE linje. Jeg er nødt til at bryde ud alle de fakturaer i separate filer. Can someone please hjælp mig. Jeg ved Grep, sedEller AWK kan gøre dette, men ikke sikker på hvordan. Tak Her er et eksempel: ST * 810 * 0001 BIG * 20080315 * 1220680417 ** UDLEVERING *** DI N1 * SF * MCLANE HOEJE Plains * 92 * 46120004 N1 * ST * SWC 7-11 # 57134 * 91 * 571315 N3 * 2712 E 8. ST N4 * Odessa * TX * 79761 Ref. * ST * 000134 ITD * 05 * 3 ***** 7 ***** NET 7 IT1 ** 1 * CA * 20.09 ** CB * 649.251 * PI * 093 * op * 099299711018 * RA * NA TXI * ZZ * 1,53 **** 2 CTP ** RES * 0 *** VSA * 1 PID * F **** 7-11 T-SHIRT BAG 1 / 7 BBL PO4 * 1000 IT1 ** 1 * EA * 33.72 ** CB * 834.861 * PI * 093 * op * 012253022401 * RA * NA TXI * ZZ * 2,57 **** 2 CTP ** RES * 0 *** VSA * 1 PID * F **** KIT BETON CHAMP PO4 * 1 IT1 ** 1 * EA * 0,03 ** CB * 192.849 * PI * 093 * op * 000000192842 * RA * NA CTP ** RES * 0 *** VSA * 1 PID * F **** SCS 711 BK 200 PO4 * 1 IT1 ** 30 * EA * 2,59 ** CB * 001.511 * PI * 093 * op * 025215102776 * RA * NA CTP ** RES * 0 *** VSA * 1 PID * F **** Maxell T-160 PLUS VIDEO PO4 * 1 TDS * 18454 SAC * C * G740 *** 5300 ******* 06 *** SERVICE CTT * 4 SE * 30 * 0001 |
|
||||
|
Tak for dit hurtige svar.
Det gjorde, hvad jeg ville. Men de tre dele skal parses til forskellige filer. Så du har ST data SE Dette bør tages til fil 1 ST data SE Dette bør tages til fil 2 ETC ..... Jeg også bemærket, at ST og SE er nummererede. ST * 810 * 0004 Så SE * (Antal) * 0004 Tak Senest redigeret af rgentis; 03-18-2008 kl 08:07 PM.. Årsag: Tilføjet noget |
|
||||
|
nawk 'BEGIN (n \u003d 1)
$ 0 ~ / ^ ST / (f \u003d 1) $ 0 ~ / ^ SE / (faktura [n] \u003d sprintf ( "% s \ n% s", faktura [n], $ 0); f \u003d 0, n \u003d n +1) ( if (f \u003d\u003d 1) faktura [n] \u003d sprintf ( "% s \ n% s", faktura [n], $ 0) ) SLUT ( for (i i faktura) udskrive faktura [i]>> I close (i) ) 'Filename |
|
||||
|
ekstrakt flere dele af fil
# - Brug ST værdier som output filnavn.
awk-v out \u003d "/ dev / null" " / ^ ST / (gsub ( "\ \ *","-",$ 0); ud \u003d $ 0". Txt ") / ^ SE / (close (ud)) (Printf "% s \ n", $ 0>> ud) '$ INFILE Output vil være ST-810-0001.txt så videre ... -Ramesh |
![]() |
| Bogmærker |
| Tags |
| linux, linux kommandoer, Solaris |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|