How to decode text files?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to decode text files?
# 1  
Old 01-29-2013
How to decode text files?

HI experts....I am trying to decode some text files... I need little help from you people...file is of mixed type...from generated from windows based system

my text files looks like this...

Code:
2.AUBZ               158   1 11 116204310 6 N 7542 E       18
    02846    52833   102821   152815   202824   252812   302804   352825   402809
   452774   502759   552727   602712   652699   702685   752655   802603   852539
  2.AUCE                50  39 12 12314 453 0 S 5730 E      130
    0 374    5 374   10 375   15 375   20 375   25 374   30 373   35 373   40 371
   45 376   50 376   55 366   60 370   65 366   70 362   75 359   80 358   85 358
   90 354   95 354  100 319  105 262  110 243  115 233  120 226  125 220  130 217
  135 209  140 200  145 198  150 199  155 196  160 197  165 198  170 201  175 205
  180 207  185 211  190 215  195 217  200 218  205 217  210 218  215 217  220 218
  225 230  230 225  235 232  240 227  245 224  250 226  255 229  260 228  265 230
  270 234  275 237  280 239  285 237  290 241  295 242  300 240  305 239  310 239
  315 239  320 238  325 239  330 239  335 241  340 241  345 241  350 239  355 239

I want to print like this


Code:
2    AUBZ    158    1    11    1162043        10 6N    7542E    18    0    28.46
2    AUBZ    158    1    11    1162043        10 6N    7542E    18    5    28.33    
2    AUCE    50    39    12    12314 4     53 0S    5730E    130    0      37.4
2    AUCE    50    39    12    12314 4        53 0S    5730E    130    5    37.4                                            
2    AUCE    50    39    12    12314 4        53 0S    5730E    130    355    23.9


Last edited by Akshay Hegde; 01-29-2013 at 03:46 AM.. Reason: to attach sample file
# 2  
Old 01-29-2013
Don't let the people to assume how the output is formed.

explain how the output is derived from the given input. Also let us know, what you tried so far ?
# 3  
Old 01-29-2013
silly but still posting...as itkamaraj asked....I am just trying to port to shell from old fortran...

Code:
character clsgn,shnm,lp,lgp,aqsy,comnm
    dimension dstand(1000),tstand(1000),sstand(1000)
    integer dstand,cno,pno,yy,mm,hh,mn,dd,ld,lm,lgd,lgm,nop,x
    real tstand,sstand,time,lat,long
    open(2,file='out.dat')
        open(1,file='decoding.txt')
15      read(1,10,end=100)clsgn,shnm,cno,pno,yy,mm,dd,hh,mn,ld,lm,lp,lgd
     1,lgm,lgp,nop,aqsy,comnm
        read(1,11,end=100)(dstand(k),tstand(k),k=1,nop)
10     format(2x,a9,1x,a9,1x,i5,1x,i2,1x,i2,i2,i2,i2,i2,i2,i2,1x,a1,1x
     1,i2,i2,1x,a1,1x,i9,1x,a5,1x,a4)
11      format(9(2x,i3,f4.2))
    time=hh*1.00+mn*0.01
     lat=(1.00*ld)+(0.1*lm/6)
    long=(1.00*lgd)+(0.1*lgm/6)
    do k=1,nop
    write(2,30)clsgn,shnm,cno,pno,lat,long,dd,mm,yy,time
     1,dstand(k),tstand(k)
30      format(a9,1x,a9,1x,i5,1x,i2,1x,f5.2,1x,f5.2,1x,i2,1x,i2,1x
     1,i2,1x,f5.2,1x,i4,1x,f5.2,1x,f6.3)
    end do
    goto 15
100     continue
    close(1)
    stop
    end

---------- Post updated at 05:59 AM ---------- Previous update was at 05:09 AM ----------

whether itkamaraj can we make simple with shell scripting....I am getting some run time error with fortran for huge files.............
# 4  
Old 01-29-2013
The FORTRAN source does not really help (although I still can read it). I can't see how you mangle the input file to get what you posted as desired output. Esp.: Why do you print just two lines for AUBZ using just the first two data entries in the first following line, not one nor three? Why three for AUCE? Why do you interpret 02846 as 0 28.45, but 0 374 as 0 37.4 (not 3.74)? Why do you skip all data points from third to before last for AUCE?
# 5  
Old 01-30-2013
Actually this type of data file is created by some mad people of our organization, I also struggled like you while interpreting datafile, finally I got funny answer from one big person that, in first section of AUBZ is created by old machines, and
Code:
2nd AUCE

is done in new machines, and finally what you need to do is whenever
Code:
02846

like data read from
Code:
LSB

4 digit and split as
Code:
0 28.46

and whenever there is data like
Code:
0 374 (4th one is space)

separate
Code:
1st LSB

using
Code:
.

this actually told by that person...I don't know what to do...I am searching for help in fortran forum now...some people really don't understand...if you explain about datafile format they just want result....here my case also same...they need result..
# 6  
Old 01-30-2013
OK, let's dust off oooold FORTRAN capabilities. What your code does is easy: read a header holding a loop count according to a given fixed format, read count variables in fixed format, write count lines acc. to fixed format. Continue with: read next header and so on. BUT formats of neither input nor output file you provided do fit the I/O formats in code:
Code:
first header read, format 10:
  2.AUBZ               158   1 11 116204310 6 N 7542 E       18
xxaaaaaaaaaxaaaaaaaaaxiiiiixiixiiIIiiIIiiIIiixaxiiIIxaxiiiiiiiiixaaaaaxaaaa                     
  clsgn     shnm      cno   pno  mm  hh  ld   lp  lgm  nop             comnm                          
                               yy  dd  mn  lm   lgd  lgp         aqsy                           

data read, nop times, format 11, dstand & tstand:
    02846    52833   102821   152815   202824   252812   302804   352825   402809
xxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffff
   452774   502759   552727   602712   652699   702685   752655   802603   852539

second header read, format 10:
  2.AUCE                50  39 12 12314 453 0 S 5730 E      130
xxaaaaaaaaaxaaaaaaaaaxiiiiixiixiiIIiiIIiiIIiixaxiiIIxaxiiiiiiiiixaaaaaxaaaa
  clsgn     shnm      cno   pno  mm  hh  ld   lp  lgm  nop             comnm
                               yy  dd  mn  lm   lgd  lgp         aqsy       

data read, format 11:
    0 374    5 374   10 375   15 375   20 375   25 374   30 373   35 373   40 371
xxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffffxxiiiffff
  315 239  320 238  325 239  330 239  335 241  340 241  345 241  350 239  355 239



output write, format 30, nop times:
2    AUBZ    158    1    11    1162043        10 6N    7542E    18    0    28.46
aaaaaaaaaxaaaaaaaaaxiiiiixiixff.ffxff.ffxiixiixiixff.ffxiiiixff.ffxff.fff
clsgn     shnm      cno   pno      long  dd mm yy time       dstand(k)   
                             lat                                   tstand(k)

What I can see now already, the output file you provided does not fit to either input file nor the output format expected from the FORTRAN program. We should see 18 lines for AUBZ, and 130 for AUCE.I'm afraid I can't help further unless you give more hints / details.
It will certainly be possible to create e.g. an awk script that would duplicate that old code's functionality, given we know in detail what the requirements are...
This User Gave Thanks to RudiC For This Post:
# 7  
Old 01-30-2013
please look at following code...

Code:
AUCE                 50 39 53.00 57.50 23  1 12 14.04    0  3.74
AUCE                 50 39 53.00 57.50 23  1 12 14.04    5  3.74
AUCE                 50 39 53.00 57.50 23  1 12 14.04   10  3.75
AUCE                 50 39 53.00 57.50 23  1 12 14.04   15  3.75
AUCE                 50 39 53.00 57.50 23  1 12 14.04   20  3.75
AUCE                 50 39 53.00 57.50 23  1 12 14.04   25  3.74
AUCE                 50 39 53.00 57.50 23  1 12 14.04   30  3.73

I could not about to make it 37.X in my code if its 3.73 its wrong as location is 57.50 (long) and 14.04(lat)

please see below code and attachment its reading both type format but problem is in assigning decimal point

Code:
character clsgn*4,shnm*12,lp*1,lgp*1,aqsy*5,comnm*4
    dimension dstand(1000),tstand(1000),sstand(1000)
    integer dstand,cno,pno,yy,mm,hh,mn,dd,ld,lm,lgd,lgm,nop,x
    real tstand,sstand,time,lat,long
    open(2,file='out.dat')
        open(1,file='decoding.txt')
15      read(1,10,end=100)clsgn,shnm,cno,pno,yy,mm,dd,hh,mn,ld,lm,lp,lgd
     1,lgm,lgp,nop,aqsy,comnm
        read(1,11,end=100)(dstand(k),tstand(k),k=1,nop)
10     format(4x,a4,1x,a12,1x,i5,1x,i2,1x,i2,i2,i2,i2,i2,i2,i2,1x,a1,1x
     1,i2,i2,1x,a1,1x,i9,1x,a5,1x,a4)
11      format(9(2x,i3,f4.2))
    time=hh*1.00+mn*0.01
     lat=(1.00*ld)+(0.1*lm/6)
    long=(1.00*lgd)+(0.1*lgm/6)
!    if(nop.gt.140)then
    do k=1,nop
    write(2,30)clsgn,shnm,cno,pno,lat,long,dd,mm,yy,time,dstand(k)
     1,tstand(k)
30      format(a4,1x,a12,1x,i5,1x,i2,1x,f5.2,1x,f5.2,1x,i2,1x,i2,1x,i2
     1,1x,f5.2,1x,i4,1x,f5.2)
    end do
!    end if
    goto 15
100     continue
    close(1)
    stop
    end

If I can get help from awk I will be very thankful. GFORTRAN I used to compile...if you anyone can able to do at least modification It will be helpful..

Thank you RudiC for replying me.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Decode a file

hi i have this file : <?xml version="1.0" encoding="UTF-8"?> <OnDemand xmlns="http://xsd.telecomitalia.it/Schema/crmws.entity.OnDemand" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xsd.telecomitalia.it/Schema/crmws.entity.OnDemand... (2 Replies)
Discussion started by: Francesco_IT
2 Replies

2. Windows & DOS: Issues & Discussions

Decode windows .dat file

I have received a file from a Windows server that in Linux hexedit shows the following first few characters. AA 18 3C 2B 60 56 03 00 00 01 01 00 The Windows program may have received this via RS232. I need to "understand" this on a Linux machine. Please suggest where I may start decoding... (4 Replies)
Discussion started by: Alf Stockton
4 Replies

3. UNIX for Dummies Questions & Answers

What does this command do? and how to decode all other lines

Hello, I have an encoded file and I wish to see what is written inside. The first line is given below: eval "$(dd if=$0 bs=1 skip=69 2>/dev/null|gpg -d 2>/dev/null)"; exit PS: When I google above code, it says that command is use for encryption... Following lines include many strange... (2 Replies)
Discussion started by: baris35
2 Replies

4. AIX

How to decompile or decode an executable?

I have a file type of: executable (RISC System/6000 V3.1) or obj module not stripped How can I decode it? I know that this may be somewhat involved, but if you could steer me in the right direction, I would appreciate it. Thanks! (2 Replies)
Discussion started by: gg48gg
2 Replies

5. Linux

Decode the statement!!

What will the below statement do ?:confused: && { && {eval `/bin/setup 1`} || && { VAR="/tmp" } export $VAR; } (3 Replies)
Discussion started by: krishnaux
3 Replies

6. Programming

How to Decode an image using openGL

Hi, How to decode an image using openGL library libjpeg .. which are the steps needed to do this using C language.. actually my work is to decode the image, store it on the buffer, and place it on cube surface.. please guide me,,any answer will appreciated .. (8 Replies)
Discussion started by: Ravikishore
8 Replies

7. Programming

Help to decode in perl script

Hi, I am having a file in below stucture: header { subheader1 { field1 : value field2 : value field3: value } //end of subheader1 subheader2 { subheader3 { field4 : value field5 : value field6: value } subheader4 (6 Replies)
Discussion started by: kallol
6 Replies

8. Shell Programming and Scripting

auto decode a value to different value

Okay, This is not something I've tried to do before, but what I want (need) to do is when a value is read in it gets changed to the value needed. I've been given a list of ids that I need to check against the ids I have in my system, but as is the case we don't have the same naming convention... (2 Replies)
Discussion started by: nhatch
2 Replies

9. Shell Programming and Scripting

Decode email

In pine email, when you receive an email with an attachment, the content of the attachment is incoded (content-transfer-encoding: base64). I am trying to write a shell script that will read the mail file, and it will save the attachment of an email to a directory. I want to do this by reading... (6 Replies)
Discussion started by: mskarica
6 Replies

10. Shell Programming and Scripting

Please decode in English

Hello: Can anyone please decode this script in English. I have also made some comments which I know.. The actual script does not have one comment also.. #! /bin/ksh . odbmsprd_env.ksh #setting the env.. echo $0 Started at : `date '+%d-%m-%Y %H:%M:%S'` # what's echo $0 ... (4 Replies)
Discussion started by: ST2000
4 Replies
Login or Register to Ask a Question