The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-18-2008
rgentis rgentis is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 4
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
  #2 (permalink)  
Old 03-18-2008
Shamrock shamrock is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: oktober 2007
Beliggenhed: USA
Stillinger: 750
Code:
awk '/^ST/,/^SE/' file
  #3 (permalink)  
Old 03-18-2008
rgentis rgentis is offline
Registreret Bruger
  
 

Join Date: Mar 2008
Stillinger: 4
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

SE * (Antal) * 0004
Tak

Senest redigeret af rgentis; 03-18-2008 kl 08:07 PM.. Årsag: Tilføjet noget
  #4 (permalink)  
Old 03-18-2008
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Posts: 1.082
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
  #5 (permalink)  
Old 03-18-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Apr 2007
Beliggenhed: Saint Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 707
Hej.

En suppleant awk løsning:
Code:
#!/usr/bin/env sh

# @(#) s1       Demonstrate extraction of range to separate files.

#  ____
# /
# |   Infrastructure BEGIN

echo
set -o nounset

debug=":"
debug="echo"

## The shebang using "env" line is designed for portability. For
#  higher security, use:
#
#  #!/bin/sh -

## Use local command version for the commands in this demonstration.

set +o nounset
echo "(Versions displayed with local utility \"version\")"
version >/dev/null 2>&1 && version =o $(_eat $0 $1) awk my-nl
set -o nounset

# Use nawk or /usr/xpg4/bin/awk on Solaris.

echo

FILE=${1-data1}
echo " Input file $FILE:"
cat $FILE

# |   Infrastructure END
# \
#  ---

echo
echo " Results from processing:"
awk '
BEGIN   { i = 0 }
/ST/            { i++ ; name = "file" i }
/ST/,/SE/       { print > name }
' $FILE

my-nl file?

exit 0
Producerer:
Code:
% ./s1

(Versions displayed with local utility "version")
Linux 2.6.11-x1
GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
GNU Awk 3.1.4
my-nl (local) 296

 Input file data1:
ST
first invoice
SE
ST
second invoice
SE
ST
third invoice
SE

 Results from processing:

==> file1 <==

  1 ST
  2 first invoice
  3 SE

==> file2 <==

  1 ST
  2 second invoice
  3 SE

==> file3 <==

  1 ST
  2 third invoice
  3 SE
Vælg den base filnavn, du ønsker i variablen "navn" ... cheers, DRL
  #6 (permalink)  
Old 03-19-2008
faltooweb faltooweb is offline
Registreret Bruger
  
 

Join Date: Jan 2008
Stillinger: 11
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
Closed Thread

Bogmærker

Tags
linux, linux kommandoer, Solaris

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 12:43 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0