THanks Every body

I managed to fix a PERL script based on what you gave me

On Mon, Jun 20, 2011 at 11:22 AM, <[email protected]> wrote:

> 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
>



-- 
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

رد على