Hii
I tried to get it in bash and it looks that it worked with me:

cat FILE | while read l; do
DATA_TYPE_NEW=`echo $l | awk -F'DATA_TYPE' '{print $1}'`
if [ "${DATA_TYPE}" = "${DATA_TYPE_NEW}" ] ; then
WORD_LEN=$(( `echo $l|wc -m` -1));
CUREENT_LINE_LEN=$(( `echo $LINE |sed 's/,//g'| wc -m` -1 )) ;
LINE_LEN=$(( ${WORD_LEN} + ${CUREENT_LINE_LEN} )) ;
if [ "${LINE_LEN}" -gt "115" ] ;
then
echo $LINE;
LINE="$l"
else
LINE="${LINE},${l}";
fi;
else
DATA_TYPE="${DATA_TYPE_NEW}";
echo $LINE;
LINE=${l};
fi
[ "$l" = "0004FILE_END" ] && echo $l && exit 0
done | sed 's/,/'`echo -e "\01C"`'/g'


Mohammed Ameen Al-Qudah

On , Husam <[email protected]> wrote:
Thanks Mohammad and Yaman

I will try this and report back




On Sun, Jun 19, 2011 at 9:21 PM, Yaman Saqqa [email protected]> wrote:

Try this one, baring in mind:

It is not perfect or optimizedTakes data from stdin and spits to stdout
Assumes data value does not itself exceed 115)



#!/bin/perl


$count = 0;
@r = ();
$sep = "\x001C";


while () {
($r_num, $r_data) = m/([0-9]{4})(.*$)/;


if($r[$r_num]) { $fs = $sep; } else { $fs = ''; }
$r[$r_num] = $r[$r_num] . $fs . $r_data;

}


$r_size = @r;


for( $i=0; $i if(length($r[$i]) printf("%04d%s%s",$i,$r[$i],"\n");


} else {
@fields = split(/$sep/,$r[$i]);
$f_size = @fields;


printf("%04d%s", $i);
$temp_length = 0;
$tape = 0;


for( $j=0; $j if($temp_length + length($fields[$j])
$temp_length += length($fields[$j]) + length($sep);
if($tape == 1) { print $sep; }

printf("%s%s", $fields[$j]);
$tape = 1;
} else {


printf("%s%04d%s%s", "\n",$i,$fields[$j],"\n");
$temp_length = 0;

$tape = 0;
}
}

}
}





Hope it helps.



Yaman


@abulyomon

On Sun, Jun 19, 2011 at 3:21 PM, Husam [email protected]> wrote:




Hello JoLug

I need help with Any scripting language to perform the following




I have the following input file with the follwoing format :



0000FILE_HEADER
0001DATA_TYPE_ONE_R01
0001DATA_TYPE_ONE_R02
0001DATA_TYPE_ONE_R03
0001DATA_TYPE_ONE_R04
0001DATA_TYPE_ONE_R05
0001DATA_TYPE_ONE_R06
0002DATA_TYPE_TWO_R01



0002DATA_TYPE_TWO_R02
0002DATA_TYPE_TWO_R03
0002DATA_TYPE_TWO_R04
0002DATA_TYPE_TWO_R05
0003DATA_TYPE_THREE_R01
0003DATA_TYPE_THREE_R02
0003DATA_TYPE_THREE_R03



0003DATA_TYPE_THREE_R04
0003DATA_TYPE_THREE_R05
0004FILE_END


Field separator |FS| (none printable character x001C)
Max line length after joining records is 115 char





Result should be


0000FILE_HEADER
0001DATA_TYPE_ONE_R01|FS|DATA_TYPE_ONE_R02|FS|DATA_TYPE_ONE_R03|FS| DATA_TYPE_ONE_R04|FS|DATA_TYPE_ONE_R05
0001DATA_TYPE_ONE_R06



0002DATA_TYPE_TWO_R01|FS|DATA_TYPE_TWO_R02|FS|DATA_TYPE_TWO_R03|FS| DATA_TYPE_TWO_R04|FS|DATA_TYPE_TWO_R05 0003DATA_TYPE_THREE_R01|FS|DATA_TYPE_THREE_R02|FS|DATA_TYPE_THREE_R03|FS| DATA_TYPE_THREE_R04|FS|DATA_TYPE_THREE_R05



0004FILE_END






--
Husam Habannakeh
+971 505 516 489 Dubai



+962 777 656 086 Amman
+966 561 154 798 Riyadh


http://www.facebook.com/husam














--

### Jordan Linux Users Group ###

http://Jolug.org/

http://groups.google.com/group/Jolug



### Ubuntu Jordan LoCo Team ###

https://wiki.ubuntu.com/JordanTeam

http://lists.ubuntu.com/ubuntu-jo



### Ojuba Linux ###

http://ojuba.org/



### Jordan PHP ###

http://groups.google.com/group/JoPHP













--

### Jordan Linux Users Group ###

http://Jolug.org/

http://groups.google.com/group/Jolug



### Ubuntu Jordan LoCo Team ###

https://wiki.ubuntu.com/JordanTeam

http://lists.ubuntu.com/ubuntu-jo



### Ojuba Linux ###

http://ojuba.org/



### Jordan PHP ###

http://groups.google.com/group/JoPHP




--
Husam Habannakeh

+971 505 516 489 Dubai
+962 777 656 086 Amman
+966 561 154 798 Riyadh


http://www.facebook.com/husam











--

### Jordan Linux Users Group ###

http://Jolug.org/

http://groups.google.com/group/Jolug



### Ubuntu Jordan LoCo Team ###

https://wiki.ubuntu.com/JordanTeam

http://lists.ubuntu.com/ubuntu-jo



### Ojuba Linux ###

http://ojuba.org/



### Jordan PHP ###

http://groups.google.com/group/JoPHP

--
### Jordan Linux Users Group ###
http://Jolug.org/
http://groups.google.com/group/Jolug

### Ubuntu Jordan LoCo Team ###
https://wiki.ubuntu.com/JordanTeam
http://lists.ubuntu.com/ubuntu-jo

### Ojuba Linux ### http://ojuba.org/

### Jordan PHP ###
http://groups.google.com/group/JoPHP

رد على