I've one EDI file which is to be parsed into 7 different file.
I managed to extract required segments for a file(HEADER) to a separate file(sample3.dat) and is given below.
Expected output is as below
Second CLM segment is the child claim of first CLM and REF segment is available under that. I wrote the below script to parse the file.
Commented portion of the script below throws syntax error.
Output after executing the file is given below
I don't understand where my script is going wrong. Can someone please help me in understanding this.
Thank you
$100 is to assign NULL values. I forgot to add command to replace '~' which is not a priority.
Simple explanation of my code:
If a line begins with CLM, assign second field value to CLM_NBR.
For record starting with CLM, 6th field is again delimited by ">". 6th column is splitted and value is held in an array x. If x[3] is either 7 or 8, then consider the line starting with REF*F8.
Once DTP line is encountered, print all the value stored in the variables.
That may account for the actual output you showed; make sure there's no DOS <CR> line terminators in your data file.
Quote:
I get error while using if statement also.
I don't think so if using if correctly.
Quote:
...Commented portion of the script below throws syntax error.
And I think rightly, for syntactical as well as logical/semantical reasons:
- ... ? ... : ... is the conditional assignment operator. You can't use it for flow control. As Scrutinizer said, use if ... else ...
- ( ... ) can't be used in flow control; use { ... }
- /^REF\*F8 can't work as desired here
a) syntactically: a pattern cannot be used inside an action. Use if (/.../) and it will fly
b) logically: it's working on a line that starts with CLM, so ^REF will never be true. When a line with ^REF is encountered, it will not enter this action.
---------- Post updated at 17:29 ---------- Previous update was at 17:02 ----------
Tried to prettify your script. First version delivered the same output from your sample input as did your script. Some modifications of both script and data file delivered the desired output (or pretty close, at least):
Had to make some assumptions (e.g. CLM record appearing before REF F8 record) and had to set the FREQ to 7 in your sample data, but you get the gist (I hope).
Thank you @RudiC.
Please explain why you used below code after print statement. I got the desired output when I removed that.
The sample file which I used had DOS character(^M) and script worked when I removed it.
It replaces all those PATPAID_AMT = $100 in the conditional assignments above, and it is relevant only if you have multiple records to process as it resets the variables to NUL (an unassigned variable equivalent to "empty", more understandable than $100).
As it was ultimately Don Craguns idea that saved the whole project i can as well give something back to the community. This is my stanza file parser, which was written only using ksh without any external programs.
The stanza structure
There is some inconsistency as to what exactly is meant by... (0 Replies)
Hi All,
I am trying to create a parser to find out what cobol programs are being called by which JCL's.
I need to search recursively until the main cobol program is found being called by a JCL.
I tried to create a script but I am not able to generalize it. Can someone please help.
... (1 Reply)
Hi
need help parsing a file.
I have tag fields and values in a file with delimiter |.
sample records from the file listed below
8=value|9=value|35=value|49=value|56=value|34=value|50=value|48=value|10=value
8=value|9=value|35=value|49=value|56=value|34=value|51=value|48=value|10=value... (2 Replies)
Hi Everyone
I have an out put of multiple lines
which I would like to parse and retrieve certain info from it.
The output consists of multiple sections that starts with the line Client:
and ends with STL tag: each section separated by an empty line.
So basically somehting like
Client: ... (10 Replies)
Dear all
I would like to know if you have face to the problems as add
1. 256 MB DDR Ram memory
2. IDE 40 GB slaved hard-disk
my current machine is GA-SIML Rev 1.0, 1.6 GHz CPU, 1GB HDD, 256 MB DDR-Ram memory, as I add another 256 DDR-Ram, and 40 GB Slaved EDI Hard disk it, the systems... (1 Reply)
Hello,
We have edi files we need to do some extra parsing on.
There is a line that shows up that looks like this:
GE|8,845|000000000
We need to parse the file, find the line ( that begins with GE "^GE" ), and remove the comma(s).
What is the easiest way to do that ? I know I can grab... (5 Replies)
Hi,
I wanted to compare EDI files present in Two different Directories which can be related by the file names. While comparing the EDI files i have to skip selected segments such as "ISA" "IEA" and "GS" "GE" since this may have datetime stamp and different "Sender" "Receiver" Qual.
and... (3 Replies)
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... (7 Replies)
i need a simple text parser which can parse a data file created by a softwre so that i can export it to my mysqldb,, datafile created as one record per line with different number of fields.
e.g datafile contains following.
a=1, b=3, c=4
a=1, c=55, d=abcd
a=5, b=hello, c=99, d=help
now i... (12 Replies)
Hello, i'm workig with a file with structural information about biological macromolecules (proteins etc).
In a certain file, the info is structured like this
@<TRIPOS>MOLECULE
blah 1
blah 2
blah 3
@<TRIPOS>MOLECULE
foo 1
foo 2
foo 3
@<TRIPOS>MOLECULE
mmm 1
mmm 2
mmm 3
I would... (7 Replies)