Help in Parsing data


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help in Parsing data
# 1  
Old 02-11-2011
Question Help in Parsing data

I have below string
Code:
Transaction_ID:SDP-DM-151204679 , Transaction_DateTime:2011-02-11 00:00:15 GMT+05:30 , Transaction_Mode:WAP , Circle_ID:4 , Circle_Name:BJ ,Zone: , CustomerID:B_31563486 , MSISDN:7870904329 , IMSI:405876122068099 , IMEI: , Sub_Profile:Pre-Paid , CPID:Nazara , CPNAME:Nazara , Content_ID:NA , Content_Name:Java%20Games , Base_Price:50.0 , Charge_Code:code50 , Content_Price:50 , Content_Status: , Content_Type:Games , Other_Info:] , Static_ID:BJ#25848082 , Original_Content_Owner_ID:Nazara , External_Correlation_Id:2011021023585279271 , Product_Name: , Sender_MSISDN:56363 , Subscription_Channel: , Subscription_Type: , Location:BJ , PPL_FLAG:TRUE , CustomCDRInterceptor - CDR Info[Optional_Field1: , Optional_Field2: ,

I need the output like :
Code:
SDP-DM-151204679,2011-02-11 00:00:15 GMT+05:30,WAP,4,BJ,,B_31563486,7870904329,405876122068099,,Pre-Paid,Nazara,Nazara,NA,Java%20Games,50.0,code50,50,,Games,,BJ#25848082,Nazara,2011021023585279271,,56363,,,BJ,TRUE,,,

# 2  
Old 02-11-2011
Code:
$
$
$ echo $STR
Transaction_ID:SDP-DM-151204679 , Transaction_DateTime:2011-02-11 00:00:15 GMT+05:30 , Transaction_Mode:WAP , Circle_ID:4 , Circle_Name:BJ ,Zone: , CustomerID:B_31563486 , MSISDN:7870904329 , IMSI:405876122068099 , IMEI: , Sub_Profile:Pre-Paid , CPID:Nazara , CPNAME:Nazara , Content_ID:NA , Content_Name:Java%20Games , Base_Price:50.0 , Charge_Code:code50 , Content_Price:50 , Content_Status: , Content_Type:Games , Other_Info:] , Static_ID:BJ#25848082 , Original_Content_Owner_ID:Nazara , External_Correlation_Id:2011021023585279271 , Product_Name: , Sender_MSISDN:56363 , Subscription_Channel: , Subscription_Type: , Location:BJ , PPL_FLAG:TRUE , CustomCDRInterceptor - CDR Info[Optional_Field1: , Optional_Field2: ,
$
$
$ echo $STR | perl -F, -lane 's/^\s*[- \w\[]+:(.*?)\s*$/$1/ foreach @F; print join ",", @F'
SDP-DM-151204679,2011-02-11 00:00:15 GMT+05:30,WAP,4,BJ,,B_31563486,7870904329,405876122068099,,Pre-Paid,Nazara,Nazara,NA,Java%20Games,50.0,code50,50,,Games,],BJ#25848082,Nazara,2011021023585279271,,56363,,,BJ,TRUE,,
$
$

tyler_durden

Last edited by durden_tyler; 02-11-2011 at 10:23 AM..
# 3  
Old 02-11-2011
Question Help in Parsing

Thanks for prompt response.
But there is only issue left that closed square bracket
Code:
]

" is left in the output.
Please suggest
# 4  
Old 02-11-2011
Quote:
Originally Posted by poweroflinux
...
But there is only issue left that closed square bracket
Code:
]

" is left in the output.
Please suggest
Yes, I did notice that.
It is the value of "Other_Info" and hence it should be shown in the output, as per your logic.

Consider the following excerpt from your string -

Code:
..., Content_Type:Games , Other_Info:] , Static_ID:BJ#25848082 ,...

Each token delimited by commas is in the form of a "name : value" pair.

Code:
Token1 = Content_Type:Games
Name1  = Content_Type
Value1 = Games
--------------------------------
Token2 = Other_Info:]
Name2  = Other_Info
Value2 = ]
--------------------------------
Token3 = Static_ID:BJ#25848082
Name3  = Static_ID
Value3 = BJ#25848082 

Consequently the output string corresponding to that excerpt would be -

Code:
...,Games,],BJ#25848082,...

tyler_durden
# 5  
Old 02-12-2011
Question Help in parsing

Hi Durden,

Thanks for the suggestion, but is there is any way to remove only closed sqaure bracket "]" and print other data in this variable.
For instance :
Other_Info=sometext]

Then output i need is sometext not closed square bracket "]"


Quote:
Originally Posted by durden_tyler
Yes, I did notice that.
It is the value of "Other_Info" and hence it should be shown in the output, as per your logic.

Consider the following excerpt from your string -

Code:
..., Content_Type:Games , Other_Info:] , Static_ID:BJ#25848082 ,...

Each token delimited by commas is in the form of a "name : value" pair.

Code:
Token1 = Content_Type:Games
Name1  = Content_Type
Value1 = Games
--------------------------------
Token2 = Other_Info:]
Name2  = Other_Info
Value2 = ]
--------------------------------
Token3 = Static_ID:BJ#25848082
Name3  = Static_ID
Value3 = BJ#25848082 

Consequently the output string corresponding to that excerpt would be -

Code:
...,Games,],BJ#25848082,...

tyler_durden
# 6  
Old 02-13-2011
Using awk - removes trailing spaces and "]" chars:

Code:
awk -F, '{ for(i=1;i<=NF;i++) {
gsub("^[^:]*:", x, $i);
gsub("[ \\]]*$", x, $i); }} 1' OFS=, infile

This User Gave Thanks to Chubler_XL For This Post:
# 7  
Old 02-13-2011
Chubler_XL's code is better, here is shorter one, but with extra space.

Code:
awk 'BEGIN{RS=ORS=",";FS=":"}{$1=""}1' ORS=, infile 

 SDP-DM-151204679 , 2011-02-11 00 00 15 GMT+05 30 , WAP , 4 , BJ ,  , B_31563486 , 7870904329 , 405876122068099 ,  , Pre-Paid , Nazara , Nazara , NA , Java%20Games , 50.0 , code50 , 50 ,  , Games , ] , BJ#25848082 , Nazara , 2011021023585279271 ,  , 56363 ,  ,  , BJ , TRUE ,  ,  ,,

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing Bulk Data

Hi All, :D Actullay I am looking for a smart way :b: to parse files in a directory whose count is around 2000000 :eek: in a single day. Find is working with me but taking a lot of times :confused:, sometimes even a day which is not helping me.:wall: So anyone can help me know a smart... (5 Replies)
Discussion started by: jojo123
5 Replies

2. Shell Programming and Scripting

Parsing XML (and insert data) then output data (bash / Solaris)

Hi folks I have a script I wrote that basically parses a bunch of config and xml files works out were to add in the new content then spits out the data into a new file. It all works - apart from the xml and config file format in the new file with XML files the original XML (that ends up in... (2 Replies)
Discussion started by: dfinch
2 Replies

3. Shell Programming and Scripting

Parsing file data

Hey Guys, I'm a novice at shell scripts and i need some help parsing file data. Basically, I want to write a script that retrieves URLs. Here is what I have so far. #!/bin/bash echo "Please enter start date (format: yyyy-mm-dd):\c" read STARTDATE echo "Please enter end date... (7 Replies)
Discussion started by: silverdust
7 Replies

4. Shell Programming and Scripting

Help with parsing data with awk , eliminating unwanted data

Experts , Below is the data: --- Physical volumes --- PV Name /dev/dsk/c1t2d0 VG Name /dev/vg00 PV Status available Allocatable yes VGDA 2 Cur LV 8 PE Size (Mbytes) 8 Total PE 4350 Free PE 2036 Allocated PE 2314 Stale PE 0 IO Timeout (Seconds) default --- Physical volumes ---... (5 Replies)
Discussion started by: rveri
5 Replies

5. Shell Programming and Scripting

Data parsing

Hi, I do have a data file which is divided into compartments by ---------. I would like to extract (parse) some of the data and numbers either using awk or sed The file has the format: CATGC Best GO enrichment: Genes/ORF that have the motifs (genes are sorted by max(pa+pd+po)): ... (6 Replies)
Discussion started by: Lucky Ali
6 Replies

6. Shell Programming and Scripting

Parsing the data

Hi friends, I need to parse the following data in the given format and get the desired output. I need a function, which takes the input as a parameter and the desired output will be returned from the function. INPUT(single parameter as complete string) A;BCF;DFG;FD ... (3 Replies)
Discussion started by: sumesh.1988
3 Replies

7. Shell Programming and Scripting

Parsing data

Hi all , I have a file with billing CDR records in it. I need to parse that information (row format) . The purpose is to compare full content. The example I have given below is a single line record but it has two portions, (1) the line start with “!” and end with “1.2.1.8” and (2) second part... (5 Replies)
Discussion started by: jaygamini
5 Replies

8. Shell Programming and Scripting

More efficent Data Parsing

I am looking for a way to parse out some numbers from text. This is an excerpt from a larger script that I am trying to make run a little smoother. Specifically this script is used to Capture DV video streams on a linux machine from the terminal. The setup does 6 streams at once, and this part... (3 Replies)
Discussion started by: Starcast
3 Replies

9. Shell Programming and Scripting

Parsing the data

Hi I need to parse the following data using shell script Table ----- stage4n_abc 48 stage4o_abcd 4 adashpg_abc_HeartBeat 1 stage4l_asc 168 Can anyone gimme the solution. I want each value to get stored in an array or variable and want the value to be greped from another file.... (1 Reply)
Discussion started by: Archana.Dheepan
1 Replies

10. Shell Programming and Scripting

Parsing the data in a file

Hi, I have file (FILE.tmp) having contents, FILE.tmp ======== filename=menudata records=0000000000037 ldbname=pinsys timestamp=2005/05/14-18:32:33 I want to parse it bring a new file which will look like, filename records ldbname timestamp... (2 Replies)
Discussion started by: Omkumar
2 Replies
Login or Register to Ask a Question