The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Strip einer Zeile von 2 leere Zeilen in einer Datei Tipsy Shell Programmierung und Scripting 6 06-23-2008 09:14 AM
Streifen ersten 4 und letzten 2 Zeilen aus einer Datei mit Perl meghana Shell Programmierung und Scripting 10 02-01-2008 09:01 PM
Wie kann man Buffer gestreamten Linien? jjinno Shell Programmierung und Scripting 14 07-19-2007 04:36 PM
Strip 3 Header-Zeilen und Linien 4 Trailer ganesh123 Shell Programmierung und Scripting 9 03-10-2007 05:15 PM
Leistung jedes bestimmten Linien. munnabhai1 Shell Programmierung und Scripting 1 04-06-2006 02:09 PM

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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 11-18-2008
sapedi sapedi is offline
Registrierte Nutzer
  
 

Join Date: Nov 2008
Beiträge: 3
Wie Strip-Linien aus Streamed EDI-Ausgang

Angebracht ist ein Streaming-EDI ANSI X12-Ausgabe, wo das Segment Terminator / Trennzeichen ist eine Tilde ~ Charakter.

Ist es möglich, die folgenden Pseudo-Code in einer UNIX-Skript (entweder mit sed, Awk und / oder grep)?
Datei öffnen StreamedOutput.txt
Suche nach ISA und löschen Sie die Daten bis auf die Tilde ~ char
Suche nach GS und löschen Sie die Daten bis auf die Tilde ~ char
Und schreiben Sie die "Mitte"-Bit-Daten zu den gleichen Dateinamen.

Mit anderen Worten möchte ich den ersten Band (ISA) und letzte Segment (GS) dieser Datei werden alle bis auf die Tilde und lassen Sie mich das Stück in der Mitte.

Ich habe versucht, das folgende Skript, aber nicht sehr viel Freude;
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 "$ (a), $ (b) p 'StreamedOutput


Wenn ich unstreamed der Input-Daten, wie sieht es aus;
ISA * HDR * START * USA * 0050000013 ~
BA1 * A * Y ** 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 * USA ~
N1 ** CAREY STEVE ~
N3 * 1720 EAST Blackhawk DR ~
N4 * PHOENIX * AZ * 85024 * USA ~
N1 * FW * Federal Express * 24 ~
N3 * 123 Main ~
N4 * * MEMPHIS TN ** USA ~
L13 * A * 9021.10.0050 *** 10 * 20 **** K * 0 * Bone Platten, Schrauben und Nägel und andere inte * OS * D ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * Künstliche Gelenke und Teile & Zubehör * OS * F ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * Künstliche Gelenke und Teile & Zubehör * OS * D ~
GS TRL * * ENDE * US * 0050000013 ~

Und ich will das Ergebnis ist;
BA1 * A * Y ** 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 * USA ~
N1 ** CAREY STEVE ~
N3 * 1720 EAST Blackhawk DR ~
N4 * PHOENIX * AZ * 85024 * USA ~
N1 * FW * Federal Express * 24 ~
N3 * 123 Main ~
N4 * * MEMPHIS TN ** USA ~
L13 * A * 9021.10.0050 *** 10 * 20 **** K * 0 * Bone Platten, Schrauben und Nägel und andere inte * OS * D ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * Künstliche Gelenke und Teile & Zubehör * OS * F ~
L13 * A * 9021.31.0000 *** 10 * 1000 **** K * 0 * Künstliche Gelenke und Teile & Zubehör * OS * D ~
  #2 (permalink)  
Old 11-18-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4308
Probieren Sie es zuerst ohne den farbigen Teil des Codes
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
  
 

Join Date: Dezember 2007
Ort: Haus der 17-Weltmeister Boston Celtics
Beiträge: 1311
Cool

Würden zwei grep, um die Arbeit?

Code:
grep -v "^ISA" file75 | grep -v "^GS"
  #4 (permalink)  
Old 11-18-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Lage: 45.48-73.63
Posts: 1428
Oder man grep
Code:
grep -v '^[ISA|GS]' file
  #5 (permalink)  
Old 11-18-2008
sapedi sapedi is offline
Registrierte Nutzer
  
 

Join Date: Nov 2008
Beiträge: 3
Vielen Dank für die Antworten, aber wie werden Sie den Code ändern, wenn die Daten-Streaming (dh eine lange Reihe von Daten in diesem Fall), so dass die Trennzeichen zwischen den Segmenten ist die Tilde ~ char.
  #6 (permalink)  
Old 11-18-2008
danmero danmero is offline Forum Advisor  
  
 

Join Date: Nov 2007
Lage: 45.48-73.63
Posts: 1428
Versuchen Sie, 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
Registrierte Nutzer
  
 

Join Date: Nov 2008
Beiträge: 3
Hi Danmero, wäre es zu viel verlangt für eine Aufteilung der Sie den Code und die Absichten / Sinne, wie ich versucht, mit Hilfe einer Kombination von grep und sed? Danke!
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 01:27 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0