The UNIX and Linux Forums  


Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com




View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #1 (permalink)  
Old 11-18-2008
sapedi sapedi is offline
Registered User
  
 

Join Date: Nov 2008
Posts: 3
How to Strip lines off Streamed EDI Output

Attached is a streamed EDI ANSI X12 output where the segment terminator/delimiter is a tilde ~ character.

Is it possible to do the following pseudo-code in a unix script (using either sed, awk and/or grep)?
Open file StreamedOutput.txt
Search for ISA and delete the data up to the tilde ~ char
Search for GS and delete the data up to the tilde ~ char
And write the ‘middle’ bit of data to the same filename.

In other words I want to strip off the first (ISA) and last segment (GS) of this file all up to the tilde and leave me the bit of data in the middle.

I tried to use the following script but not having much joy;
x=`grep -n "ISA" StreamedOutput | cut -d "~" -f1`
y=`grep -n "GS" StreamedOutput | cut -d "~" -f1`
a=`echo ${x} + 1 | bc`
b=`echo ${y} -1 | bc`
echo $x $y $a $b
sed -ne '${a},${b}p' StreamedOutput


If I unstreamed the input data it looks like;
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*AZ*85024*US~
N1*FW*Federal Express*24~
N3*123 Main~
N4*MEMPHIS*TN**US~
L13*A*9021.10.0050***10*20****K*0*Bone plates, screws & nails & other inte*OS*D~
L13*A*9021.31.0000***10*1000****K*0*Artificial joints & parts & accessories*OS*F~
L13*A*9021.31.0000***10*1000****K*0*Artificial joints & parts & accessories*OS*D~
GS*TRL*END*US*0050000013~

And the result I want is;
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*AZ*85024*US~
N1*FW*Federal Express*24~
N3*123 Main~
N4*MEMPHIS*TN**US~
L13*A*9021.10.0050***10*20****K*0*Bone plates, screws & nails & other inte*OS*D~
L13*A*9021.31.0000***10*1000****K*0*Artificial joints & parts & accessories*OS*F~
L13*A*9021.31.0000***10*1000****K*0*Artificial joints & parts & accessories*OS*D~