Hi All,
I am new to unix but have a requirement wherein I need to separate datatype,length, and column name from input file which is of below format --
record
integer(10) empid;
string(25) name;
date("YYYY-MM-DD") dob;
decimal(10) salary;
end
now after getting datatype,its length and column name. I need to put them in some other file(which has standard format) on specific locations.
Can you please tell me the approach, inputs on this ?
Thanks
Show the output you want, not just the input you have.
I need to replace/put these values of datatype,its length,column name in above xml standard format.
Note:1] For date field-use string in xml (length wud be number of bytes in for eg.(YYMMDD)-here 6 ...if (YYYY-MM-DD) then 10
2] For field with decimal-use number in xml. Rest wud remain same
The number of fields wud change -here we have 4. Please guide me
Where do things like 'offset' come from?
$ cat r2xml.awk
BEGIN { F=0 }
{ gsub(/[();]/, " ");
gsub(/['"]/, "");
$1=$1
gsub(/^integer/, "int");
gsub(/^date/, "string");
gsub(/^decimal/, "number");
if(!($2 ~ /^[0-9]*$/)) $2=length($2);
}
NF==3 {
printf("<SOURCEFIELD BUSINESSNAME=\"\" DATATYPE=\"%s\" "\
"DESCRIPTION=\"\" FIELDNUMBER=\"%d\" " \
"FIELDPROPERTY=\"0\" FIELDTYPE=\"ELEMITEM\" " \
"HIDDEN=\"NO\" KEYTYPE=\"NOT A KEY\" " \
"LENGTH=\"%d\" LEVEL=\"0\" NAME=\"%s\" " \
"NULLABLE=\"NULL\" OCCURS=\"0\" OFFSET=\"0\" " \
"PHYSICALLENGTH=\"10\" PHYSICALOFFSET=\"0\" " \
"PICTURETEXT=\"\" PRECISION=\"10\" SCALE=\"0\" "\
"USAGE_FLAGS=\"\"/>\n",
$1, F++, $2, $3);
}
$ awk -f r2xml.awk data
<SOURCEFIELD BUSINESSNAME="" DATATYPE="int" DESCRIPTION="" FIELDNUMBER="0" FIELDPROPERTY="0" FIELDTYPE="ELEMITEM" HIDDEN="NO" KEYTYPE="NOT A KEY" LENGTH="10" LEVEL="0" NAME="empid" NULLABLE="NULL" OCCURS="0" OFFSET="0" PHYSICALLENGTH="10" PHYSICALOFFSET="0" PICTURETEXT="" PRECISION="10" SCALE="0" USAGE_FLAGS=""/>
<SOURCEFIELD BUSINESSNAME="" DATATYPE="string" DESCRIPTION="" FIELDNUMBER="1" FIELDPROPERTY="0" FIELDTYPE="ELEMITEM" HIDDEN="NO" KEYTYPE="NOT A KEY" LENGTH="25" LEVEL="0" NAME="name" NULLABLE="NULL" OCCURS="0" OFFSET="0" PHYSICALLENGTH="10" PHYSICALOFFSET="0" PICTURETEXT="" PRECISION="10" SCALE="0" USAGE_FLAGS=""/>
<SOURCEFIELD BUSINESSNAME="" DATATYPE="string" DESCRIPTION="" FIELDNUMBER="2" FIELDPROPERTY="0" FIELDTYPE="ELEMITEM" HIDDEN="NO" KEYTYPE="NOT A KEY" LENGTH="10" LEVEL="0" NAME="dob" NULLABLE="NULL" OCCURS="0" OFFSET="0" PHYSICALLENGTH="10" PHYSICALOFFSET="0" PICTURETEXT="" PRECISION="10" SCALE="0" USAGE_FLAGS=""/>
<SOURCEFIELD BUSINESSNAME="" DATATYPE="number" DESCRIPTION="" FIELDNUMBER="3" FIELDPROPERTY="0" FIELDTYPE="ELEMITEM" HIDDEN="NO" KEYTYPE="NOT A KEY" LENGTH="10" LEVEL="0" NAME="salary" NULLABLE="NULL" OCCURS="0" OFFSET="0" PHYSICALLENGTH="10" PHYSICALOFFSET="0" PICTURETEXT="" PRECISION="10" SCALE="0" USAGE_FLAGS=""/>
$