The UNIX and Linux Forums  
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
ld: végzetes: vállalatáthelyezések marad allocatable ellen, de nem írható szakaszok tdallagn SUN Solaris 0 05-21-2008 08:58 AM
kivonat több szakaszból egy fájlt rgentis A UNIX a fejlett és szakértői Felhasználók 1 03-18-2008 08:40 PM
letöltött több vonal több helyen egy fájlt Dala Shell programozás és Scripting 8 03-14-2008 03:28 PM
Handle Konfigurációs fájl azonos neve Paraméter több szakaszban potro Shell programozás és Scripting 7 03-05-2008 11:36 AM
Fájl formában. tar.gz nélkül Uncompressing. tar.gz fájl balireddy_77 Shell programozás és Scripting 2 07-10-2007 05: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 Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 03-18-2008
rgentis rgentis is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Hozzászólások: 4
kivonat több szakaszból fájl

Van egy kép, hogy kell feldolgozni a több szakaszból a fájlt.

A fájl több vonal kezdetű ST (Abunch adatok)
Ezután a fájl több vonal kezdetű SE (Abunch adatok)

SE * 30 * 0001
ST * 810 * 0002

Kell az összes között, beleértve ezeket.
Ezeket a számlákat.
A számlán kezdődik az ST sorban, és véget ér az SE sor.

Szükségem van arra, hogy megszüntesse az összes számlát külön fájlokat.

Tud valaki kérem, segítsen nekem. Tudom, grep, sedVagy AWK tudjuk csinálni, de nem biztos benne, hogyan.
Köszönöm


Íme egy példa:
ST * 810 * 0001
BIG 20080315 * 1220680417 * ** *** BOCSÁTÁST DI
N1 * BT * MCLANE MAGAS Plains * 92 * 46120004
N1 * ST * Swc 7-11 # 57134 * 91 * 571315
N3 * 2712 E 8. GD
N4 ODESSA * * * TX 79761
REF * ST * 000134
ITD * 05 * 3 ***** 7 ***** NET 7
IT1 ** 1 * CA * 20,09 ** CB * 649251 * PI * 093 * UP * 099299711018 * RA * NA
ZZ TXI * 2 * 1,53 ****
CTP ** RES * 0 *** CSR * 1
PID * F **** 7-11 T-SHIRT BAG 1 / 7 BBL
Po4 * 1000
IT1 ** 1 * EA * 33,72 ** CB * 834861 * PI * 093 * UP * 012253022401 * RA * NA
ZZ TXI * 2 * 2,57 ****
CTP ** RES * 0 *** CSR * 1
PID * F **** KIT CONCRETE CHAMP
Po4 * 1
IT1 ** 1 * EA * 0,03 ** CB * 192849 * 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 * 001511 * PI * 093 * UP * 025215102776 * RA * NA
CTP ** RES * 0 *** CSR * 1
PID * F **** Maxell T-160 PLUS VIDEÓ
Po4 * 1
TDS * 18454
SAC * C * G740 *** 5300 *** ******* 06 SZERVIZ
CTT * 4
SE * 30 * 0001
  #2 (permalink)  
Old 03-18-2008
Shamrock shamrock is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Oct 2007
Helyszín: USA
Posts: 750
Kód:
awk '/^ST/,/^SE/' file
  #3 (permalink)  
Old 03-18-2008
rgentis rgentis is offline
Regisztrált felhasználó
  
 

Join Date: Mar 2008
Hozzászólások: 4
Köszönöm a gyors választ.

Azt tettem, amit szerettem volna. Azonban a három részből kell, hogy a különböző elemzett fájlokat.

Szóval már
ST
adatok
TF
Ezt figyelembe kell venni a fájlba 1
ST
adatok
TF
Ezt figyelembe kell venni, hogy 2 fájl

ETC .....

Azt is észrevettem, hogy az ST és az SE meg vannak számlálva.

ST * 810 * 0004
Majd
SE * (szám) * 0004
Köszönöm

Last edited by rgentis; 03-18-2008 at 08:07 PM.. Ok: Added valamit
  #4 (permalink)  
Old 03-18-2008
summer_cherry summer_cherry is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jun 2007
Helyszín: Kína Peking
Hozzászólások: 1.088
nawk 'BEGIN (n \u003d 1)
$ 0 ~ / ^ ST / (f \u003d 1)
$ 0 ~ / ^ SE / számla ([n] \u003d sprintf ( "% s \ n% s", számla [n], $ 0), f \u003d 0; n \u003d n +1)
(
if (f \u003d\u003d 1) A
számla [n] \u003d sprintf ( "% s \ n% s", számla [n], $ 0)
)
END (
for (i in számla)
nyomtatott számlát [i]>> i
close (i)
) 'Filename
  #5 (permalink)  
Old 03-18-2008
drl's Avatar
DRL drl is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Apr 2007
Hely: Saint-Paul, MN USA / BSD, CentOS, Debian, OS X, Solaris
Posts: 711
Szia.

Awk egy alternatív megoldás:
Kód:
#!/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
Előállítása:
Kód:
% ./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álassza ki az alap fájl nevét szeretné a "name" változó ... cheers, DRL
  #6 (permalink)  
Old 03-19-2008
faltooweb faltooweb is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 11
kivonat több szakaszból fájl

# - A ST értékek kimeneti fájl neve.
awk-v out \u003d "/ dev / null" "
/ ^ ST / (gsub ( "\ \ *","-",$ 0); out \u003d $ 0". Txt ")
/ ^ SE / (close (out))
: (Printf "% s \ n", $ 0>> out)
'$ Infile

Kimenet lesz
ST-810-0001.txt
stb ...

-Ramesh
Closed Thread

Könyvjelzõk

Címkék
linux, Linux parancsok, Solaris

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 03:19 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0