![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| ld: fatal: relocations fortsatt mot allocatable men ikke skrivbar seksjoner | tdallagn | Sun Solaris | 0 | 05-21-2008 08:58 |
| trekke flere deler av en fil | rgentis | UNIX for Advanced & ekspertbrukere | 1 | 03-18-2008 08:40 |
| hentes flere linjer på flere steder i en fil | dala | Shell programmering og Skripting | 8 | 03-14-2008 03:28 |
| Håndtak konfigurasjonsfil med samme navn av Parameter i flere deler | potro | Shell programmering og Skripting | 7 | 03-05-2008 11:36 |
| Pakk ut en fil form. tar.gz uten pakke. tar.gz fil | balireddy_77 | Shell programmering og Skripting | 2 | 07-10-2007 05:23 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
trekke flere deler av filen
Jeg har en fil som jeg trenger å analysere flere deler fra filen.
Filen inneholder flere linjer som starter med ST (Abunch av data) Deretter filen inneholder flere linjer som starter med SE (Abunch av data) SE * 30 * 0001 ST * 810 * 0002 Jeg trenger alle linjene mellom og med disse. De fakturaer. Fakturaen starter med ST-linjen og ender med SE linje. Jeg trenger å bryte ut av fakturaer i separate filer. Kanne noen behage hjelpe meg. Jeg vet Grep, sedEller awk kan gjøre dette, men usikker på hvordan. Takk Her er et eksempel: ST * 810 * 0001 BIG * 20080315 * 1220680417 ** Supply *** DI N1 * SF * MCLANE HIGH Plains * 92 * 46120004 N1 * ST * SWC 7-11 # 57134 * 91 * 571315 N3 * 2712 E 8th ST N4 * Odessa * TX * 79761 REF * ST * 000134 ITD * 05 * 3 ***** 7 ***** NET 7 IT1 ** 1 * CA * 20.09 ** CB * 649,251 * PI * 093 * UP * 099299711018 * RA * NA TXI * zz * 1,53 **** 2 CTP ** RES * 0 *** CSR * 1 PID * F **** 7-11 T-SHIRT BAG 1 / 7 BBL Po4 * 1000 IT1 ** 1 * EA * 33.72 ** CB * 834,861 * PI * 093 * UP * 012253022401 * RA * NA TXI * zz * 2,57 **** 2 CTP ** RES * 0 *** CSR * 1 PID * F **** KIT BETONG CHAMP Po4 * 1 IT1 ** 1 * EA * 0,03 ** CB * 192,849 * PI * 093 * UP * 000000192842 * RA * NA CTP ** RES * 0 *** CSR * 1 PID * F **** SCS 711 BK 200 Po4 * 1 IT1 ** 30 * EA * 2,59 ** CB * 001,511 * PI * 093 * UP * 025215102776 * RA * NA CTP ** RES * 0 *** CSR * 1 PID * F **** Maxell T-160 PLUS VIDEO Po4 * 1 TDS * 18454 Sac * C * G740 *** 5300 ******* 06 *** SERVICE CTT * 4 SE * 30 * 0001 |
|
||||
|
Takk for raskt svar.
Det gjorde hva jeg ville. Men de tre delene må analyseres for å til forskjellige filer. Så du har ST data SE Dette bør tas til fil 1 ST data SE Dette bør tas til fil 2 ETC ..... Også jeg merket at ST og SE er nummererte. ST * 810 * 0004 Så SE * (Number) * 0004 Takk Sist endret av rgentis; 03-18-2008 kl 08:07.. Begrunnelse: Lagt til noe |
|
||||
|
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) ) END ( for (i in faktura) Skriv ut faktura [i]>> i close (i) ) "Filename |
|
||||
|
trekke flere deler av filen
# - Bruk ST verdier som output filename.
awk-v out \u003d "/ dev / null" ' / ^ ST / (gsub ( "\ \ *","-",$ 0); out \u003d 0 $". Txt ") / ^ SE / (close (ut)) (Printf "% s \ n", $ 0>> ut) '$ INFILE Produksjonen vil bli ST-810-0001.txt så videre ... -Ramesh |
![]() |
| Hugseliste |
| Tags |
| linux, linux-kommandoer, solaris |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|