The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



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
Strip en linje fra 2 tomme linjer i en fil pussa Shell programmering og Skripting 6 06-23-2008 09:14
strip første 4 og siste 2 linjer fra en fil ved hjelp perl meghana Shell programmering og Skripting 10 02-01-2008 09:01
Hvordan buffer direkteavspilles linjer? jjinno Shell programmering og Skripting 14 07-19-2007 04:36
Strip 3 hodet og 4 trailer linjer ganesh123 Shell programmering og Skripting 9 03-10-2007 05:15
Utdata hver enkelte linjer. munnabhai1 Shell programmering og Skripting 1 04-06-2006 02:09

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øk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 11-18-2008
sapedi sapedi is offline
Registrert bruker
  
 

Bli Dato: november 2008
Innlegg: 3
Hvordan Strip linjer av streamet EDI Utdata

Vedlagt er en direkteavspilles EDI ANSI X12 output der segment Terminator / skilletegn er en tilde ~ karakter.

Er det mulig å gjøre følgende pseudo-koden i et unix skript (enten ved hjelp av sed, Awk og / eller grep)?
Åpne fil StreamedOutput.txt
Søk etter ISA og slette data opptil tildetegnet ~ char
Søk etter GS og slette data opptil tildetegnet ~ char
Og skriver "middels" bit av data med samme filnavn.

Med andre ord jeg ønsker å kle av den første (ISA) og siste segmentet (GS) av denne filen helt opp til tildetegnet og la meg litt av data i midten.

Jeg prøvde å bruke følgende skript, men ikke å ha mye glede;
x \u003d `grep-n" ISA "StreamedOutput | cut-d" ~ "-f1`
y \u003d `grep-n" GS "StreamedOutput | cut-d" ~ "-f1`
a \u003d `echo $ (x) + 1 | bc`
b \u003d `echo $ (Y) -1 | bc`
echo $ x $ y $ a $ b
sed -ne '$ (en), $ (b) p' StreamedOutput


Hvis jeg unstreamed inntastingsfeltet data det ser ut;
ISA * HDR * START * US * 0050000013 ~
BA1 * Y ** A * US * 0050000013 *** TN **** Federal Express ~
YNQ * RZ * Y ~
YNQ * qq * Y ~
DTM * 274 * 081015 ~
N1 * EX * Smith & Nephew, Inc. * 24 * 510123924RT ~
N2 * 1 * 9013995343 ~
N3 * EAST Holmes RD ~
N4 * Memphis * TN * 38118 * US ~
N1 ** Carey STEVE ~
N3 * 1720 EAST BLACKHAWK DR ~
N4 * PHOENIX * A * 85024 * US ~
N1 * FW * Federal Express * 24 ~
N3 * 123 Main ~
N4 * Memphis * TN ** US ~
L13 * A * 9021.10.0050 *** 10 * 20 **** K * 0 * Bone plater, skruer og spiker og andre inte * OS * D ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * kunstige ledd og deler og tilbehør * OS * F ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * kunstige ledd og deler og tilbehør * OS * D ~
GS * trl * END * US * 0050000013 ~

Og resultatet jeg vil ha er;
BA1 * Y ** A * US * 0050000013 *** TN **** Federal Express ~
YNQ * RZ * Y ~
YNQ * qq * Y ~
DTM * 274 * 081015 ~
N1 * EX * Smith & Nephew, Inc. * 24 * 510123924RT ~
N2 * 1 * 9013995343 ~
N3 * EAST Holmes RD ~
N4 * Memphis * TN * 38118 * US ~
N1 ** Carey STEVE ~
N3 * 1720 EAST BLACKHAWK DR ~
N4 * PHOENIX * A * 85024 * US ~
N1 * FW * Federal Express * 24 ~
N3 * 123 Main ~
N4 * Memphis * TN ** US ~
L13 * A * 9021.10.0050 *** 10 * 20 **** K * 0 * Bone plater, skruer og spiker og andre inte * OS * D ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * kunstige ledd og deler og tilbehør * OS * F ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * kunstige ledd og deler og tilbehør * OS * D ~
  #2 (permalink)  
Old 11-18-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Bli Date: Feb 2007
Innlegg: 4330
Prøv den første uten farget fragment av koden

Code:
awk '/^ISA/||/^GS/{next}{print}' file > newfile && mv newfile > file

  #3 (permalink)  
Old 11-18-2008
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Bli Dato: desember 2007
Sted: Hjemme i 17-tiden verdensmesteren Boston Celtics
Innlegg: 1311
Cool

Ville to grep for å utelukke arbeid?


Code:
grep -v "^ISA" file75 | grep -v "^GS"

  #4 (permalink)  
Old 11-18-2008
danmero danmero is online now Forum Advisor  
  
 

Bli Dato: november 2007
Beliggenhet: 45.48-73.63
Innlegg: 1437
Eller en grep

Code:
grep -v '^[ISA|GS]' file

  #5 (permalink)  
Old 11-18-2008
sapedi sapedi is offline
Registrert bruker
  
 

Bli Dato: november 2008
Innlegg: 3
Takk for svar, men hvordan vil koden endres hvis dataene ble streamet (dvs. en lang rekke data i dette tilfellet) så skilletegn skille segmentene er tildetegnet ~ røye.
  #6 (permalink)  
Old 11-18-2008
danmero danmero is online now Forum Advisor  
  
 

Bli Dato: november 2007
Beliggenhet: 45.48-73.63
Innlegg: 1437
Prøv awk:

Code:
awk -F'~' '{for(i=1;i<NF;i++){if($i !~ /^[ISA|GS]/)printf $i FS}}'

  #7 (permalink)  
Old 11-19-2008
sapedi sapedi is offline
Registrert bruker
  
 

Bli Dato: november 2008
Innlegg: 3
Hi Danmero, ville det være for mye å be om en oversikt over koden din, og det er intensjonen / betydning som jeg prøvde å koden ved hjelp av en kombinasjon av grep og sed? Takk!
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 07:06.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0