Hello,
my unix skill is minimum at best. Can you please give me a bit more clue on
what you mean?
Okay, for the sake of example, let's assume the sample you posted is in
a stream file named 'ewrest.dat'. The format of the example you posted
happens to be legitimate syntax for a Unix shell script -- i.e., it
contains statements that assign data to variables. Each variable is
uniquely identified (by the number at the end of each variable name)
So the basic premise is... you don't /parse/ your file, you /run/ it!
The result will be a bunch of variables in the memory of a QShell shell
script. Then, you write a loop that loops through those variables and
does something with them. (and I don't know what the 'something' is --
it's whatever your business logic dictates...)
So let's assume for this discussion that your data is in a file named
'ewrest.dat' and there are two "rows" of data (represented by the
numbers 0 and 1.) and let's assume that, for some reason, you want the
data to be written to a CSV file. (If nothing else, this makes it easy
to load into a database table via CPYFRMIMPF)
Here's a Qshell script:
eval $(cat ewrest.dat)
x=0;
while test $x -lt 2; do
eval col1=\$EWREST_id_${x}
eval col2=\$EWREST_wfstate_${x}
eval col3=\$EWREST_summary_${x}
eval col4=\$EWREST_boss_ciss_customer_no_${x}
echo "\"$col1\",\"$col2\",\"$col3\",\"$col4\""
x=$((x+1))
done
The 'eval' statement means "run this code", more or less. The first
line gets the contents of the ewrest.dat file (that's what "CAT" does)
and runs the code it in... essentially loading the variables into memory.
The while loop loops while the variable 'x' is less than 2... since x
starts at 0, that means it'll loop twice, first time set to 0, second
time set to 1.
the 4 'eval' statements in the loop will set the "col1", "col2", etc
variables to the values of the variables in your 'ewrest.dat' file.
first time through the loop, x=0, so $EWREST_id_${x} returns the value
of EWREST_id_0. etc.
the 'echo' statement writes the variables in CSV format...
So if you run this QShell script, you'll get this:
$
> ./ewrest
"861","Open","SummSumm -TW","1234"
"761","Open","Test -TW","123456789"
$
(I actually coded it up and ran it to make sure I got the details
right... so the output is a copy/paste from my screen.)
to direct the CSV data into a stream file, just use a redirection operator:
$
> ./ewrest > /home/scott/hockchai_test.csv
$
does that help?
As an Amazon Associate we earn from qualifying purchases.