Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I make a log file from a specific application database-file in bash?

I have a specific application database-file like this:

    •r           vbc.vvc          lin             K$³ñ123456    Œ  Œ      P  


                        P       P                          ;šÉÿ                                                    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ           ÿÿÿÿ                              Œ    ÿÿÿÿ          Œ       P   T  X  
      Œ                P   999999999 ëu   q0 …ª¤        ;šÉÿOverLimitLog     ÿÿ  06/27/2013  00:05:55 RS_A1_6         hijitso            183.49 OverLow         ÿÿ  06/27/2013  00:16:30 qaser           hijitso            993.08 hffvcgcf          ÿÿ  06/27/2013  00:18:46 yuikl           hijitso            993.08 hffvcgcf          ÿÿ  06/27/2013  00:25:01 gcxsd           hijitso            999.18 hffvcgcf          ÿÿ  06/27/2013  00:40:45 hgdrt           sdfcdsfb              0.00 Normal          ÿÿ  06/27/2013  06:25:55 khuhukjmnj,l      sdfcdsfa             13.13 hasfldkdgh       ÿÿ  06/27/2013  06:25:55 khuhukjmnj,l      sdfcdsfc             13.13 hasfldkdgh       ÿÿ  06/27/2013  06:25:55 khuhukjmnj,l      sdfcdsfb             13.13 hasfldkdgh       ÿÿ  06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfa              0.00 Normal          ÿÿ  06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfc              0.00 Normal         fhfx  06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfb              0.00 Normal          ÿÿ  06/27/2013  06:28:05 khuhukjmnj,l      sdfcdsfa             10.79 hasfldkdgh       ÿÿ  06/27/2013  06:28:05 khuhukjmnj,l      sdfcdsfc             10.79 hasfldkdgh       ÿÿ 06/27/2013  06:30:05 khuhukjmnj,l      sdfcdsfc              9.38 hasfldkdgh       ÿÿ  06/27/2013  06:30:05 khuhukjmnj,l      sdfcdsfb              9.38 hasfldkdgh        ÿÿ                                                                                  ÿÿ                                                                                  ÿÿ                                                                                  ÿÿ                                                                                  ÿÿ                                                                                  ÿÿ               

I want to convert it to this format:

06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfc              0.00 Normal

I must say, my file is NOT a regular text format and it have some unreadable character when opening that in gedit, but emacs23 can open those files.

like image 819
user3121138 Avatar asked Mar 20 '23 13:03

user3121138


2 Answers

With GNU awk you can do something like this:

$ awk 'NR>1{print RS, $1, $2, $3, $4, $5, $6}' RS='fhfx' OFS='\t' file
fhfx    06/27/2013  00:05:55    RS_A1_6 hijitso 183.49  OverLow
fhfx    06/27/2013  00:16:30    qaser   hijitso 993.08  hffvcgcf
fhfx    06/27/2013  00:18:46    yuikl   hijitso 993.08  hffvcgcf
fhfx    06/27/2013  00:25:01    gcxsd   hijitso 999.18  hffvcgcf
fhfx    06/27/2013  00:40:45    hgdrt   sdfcdsfb    0.00    Normal
fhfx    06/27/2013  06:25:55    khuhukjmnj,l    sdfcdsfa    13.13   hasfldkdgh
fhfx    06/27/2013  06:25:55    khuhukjmnj,l    sdfcdsfc    13.13   hasfldkdgh
fhfx    06/27/2013  06:25:55    khuhukjmnj,l    sdfcdsfb    13.13   hasfldkdgh
fhfx    06/27/2013  06:27:16    khuhukjmnj,l    sdfcdsfa    0.00    Normal
fhfx    06/27/2013  06:27:16    khuhukjmnj,l    sdfcdsfc    0.00    Normal
fhfx    06/27/2013  06:27:16    khuhukjmnj,l    sdfcdsfb    0.00    Normal
fhfx    06/27/2013  06:28:05    khuhukjmnj,l    sdfcdsfa    10.79   hasfldkdgh
fhfx    06/27/2013  06:28:05    khuhukjmnj,l    sdfcdsfc    10.79   hasfldkdgh
fhfx    06/27/2013  06:30:05    khuhukjmnj,l    sdfcdsfc    9.38    hasfldkdgh
fhfx    06/27/2013  06:30:05    khuhukjmnj,l    sdfcdsfb    9.38    hasfldkdgh

Or if you want it prettier you can use column

$ awk 'NR>1{print RS, $1, $2, $3, $4, $5, $6}' RS='fhfx' file | column -t 
fhfx  06/27/2013  00:05:55  RS_A1_6       hijitso   183.49  OverLow
fhfx  06/27/2013  00:16:30  qaser         hijitso   993.08  hffvcgcf
fhfx  06/27/2013  00:18:46  yuikl         hijitso   993.08  hffvcgcf
fhfx  06/27/2013  00:25:01  gcxsd         hijitso   999.18  hffvcgcf
fhfx  06/27/2013  00:40:45  hgdrt         sdfcdsfb  0.00    Normal
fhfx  06/27/2013  06:25:55  khuhukjmnj,l  sdfcdsfa  13.13   hasfldkdgh
fhfx  06/27/2013  06:25:55  khuhukjmnj,l  sdfcdsfc  13.13   hasfldkdgh
fhfx  06/27/2013  06:25:55  khuhukjmnj,l  sdfcdsfb  13.13   hasfldkdgh
fhfx  06/27/2013  06:27:16  khuhukjmnj,l  sdfcdsfa  0.00    Normal
fhfx  06/27/2013  06:27:16  khuhukjmnj,l  sdfcdsfc  0.00    Normal
fhfx  06/27/2013  06:27:16  khuhukjmnj,l  sdfcdsfb  0.00    Normal
fhfx  06/27/2013  06:28:05  khuhukjmnj,l  sdfcdsfa  10.79   hasfldkdgh
fhfx  06/27/2013  06:28:05  khuhukjmnj,l  sdfcdsfc  10.79   hasfldkdgh
fhfx  06/27/2013  06:30:05  khuhukjmnj,l  sdfcdsfc  9.38    hasfldkdgh
fhfx  06/27/2013  06:30:05  khuhukjmnj,l  sdfcdsfb  9.38    hasfldkdgh
like image 56
user000001 Avatar answered Apr 08 '23 12:04

user000001


You can try this :

cat output.txt | sed 's/fhfx/\n&/g' | sed 's/ÿÿ *//g' | sed  '/fhfx/!d'

The result is :

fhfx  06/27/2013  00:05:55 RS_A1_6         hijitso            183.49 OverLow        
fhfx  06/27/2013  00:16:30 qaser           hijitso            993.08 hffvcgcf         
fhfx  06/27/2013  00:18:46 yuikl           hijitso            993.08 hffvcgcf         
fhfx  06/27/2013  00:25:01 gcxsd           hijitso            999.18 hffvcgcf         
fhfx  06/27/2013  00:40:45 hgdrt           sdfcdsfb              0.00 Normal         
fhfx  06/27/2013  06:25:55 khuhukjmnj,l      sdfcdsfa             13.13 hasfldkdgh      
fhfx  06/27/2013  06:25:55 khuhukjmnj,l      sdfcdsfc             13.13 hasfldkdgh      
fhfx  06/27/2013  06:25:55 khuhukjmnj,l      sdfcdsfb             13.13 hasfldkdgh      
fhfx  06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfa              0.00 Normal         
fhfx  06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfc              0.00 Normal         
fhfx  06/27/2013  06:27:16 khuhukjmnj,l      sdfcdsfb              0.00 Normal         
fhfx  06/27/2013  06:28:05 khuhukjmnj,l      sdfcdsfa             10.79 hasfldkdgh      
fhfx  06/27/2013  06:28:05 khuhukjmnj,l      sdfcdsfc             10.79 hasfldkdgh      
fhfx 06/27/2013  06:30:05 khuhukjmnj,l      sdfcdsfc              9.38 hasfldkdgh      
fhfx  06/27/2013  06:30:05 khuhukjmnj,l      sdfcdsfb              9.38 hasfldkdgh  

You have a problem at the pre-last line, but I don't know if it's OK. I don't know wether you want to align your columns etc...

like image 35
Thibault Avatar answered Apr 08 '23 14:04

Thibault