String parsing


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting String parsing
# 1  
Old 07-19-2010
String parsing

Hi,

Code:
name=VDSL_TTV_  HN_SUB create coid=MA5603U phone=5678 portpolicy=APortSelectionPolicy rfu10=TTV rfu3=Dot1q sz7_portmode=VDSL2 rfu5=1234 srprofile.sy_profname=$ADSL_TTV_SubProfile1

I have a line like this. Its a single line.I need the output as
name=VDSL_TTV_ HN_SUB create
coid=coid=MA5603U
phone=5678
portpolicy=APortSelectionPolicy

the catch is that the value can also have spaces thats where i could not process. Can somebody help me on this?

Moderator's Comments:
Mod Comment Please use code-tags when posting code, output, etc.. Thanks.

Last edited by bakunin; 07-19-2010 at 04:26 AM..
# 2  
Old 07-19-2010
Quote:
Originally Posted by giri_luck
the catch is that the value can also have spaces thats where i could not process. Can somebody help me on this?
The problem is you have to distinguish the whitespace inside the field value from the whitespace separating values. For example see the following:

Code:
a=foo b=bar c=foo bar d=foo

The whitespace after "c=foo" has a function different from the one after the following "bar".

I'd suggest the following rule: a space followed by a word followed by an equal sign is a field separator, otherwise it is part of a multiword field.

The downside of this is that trailing blanks will be considered part of the last field, they would have to be chopped off previous to parsing. Here is some (untested) example code (replace "<b>" and "<t>" with literal blanks/tabs):

Code:
sed s/[<b><t>]\([^<b><t>][^<b><t>]*=\)/\n\1/g /path/to/input > /path/to/output

I hope this helps.

bakunin

Last edited by bakunin; 07-19-2010 at 06:40 AM..
# 3  
Old 07-19-2010
Hi,

something like:

Code:
sed "s/rfu.*//;s/[a-z][a-z]*=/\n&/g" file

HTH Chris
# 4  
Old 07-19-2010
Code:
# awk -F" " '{print $1,$2,$3};{print $4};{print $5};{print $6}' infile
name=VDSL_TTV_ HN_SUB create
coid=MA5603U
phone=5678
portpolicy=APortSelectionPolicy

# 5  
Old 07-19-2010
Hi

Code:
cat file | tr ' ' '\n' | awk 'NR!=1 && !/\=/{x=x" "$0;next;}{if(NR!=1){print x;x=$0;}else x=$0;}END{print x}'

Guru.
# 6  
Old 07-19-2010
Thanks guys , it really works

@ ygemici :

Can you please explain your command ?

---------- Post updated at 03:54 AM ---------- Previous update was at 03:39 AM ----------

@ guruprasadpr :

can you please explain your command.
# 7  
Old 07-19-2010
Quote:
Originally Posted by giri_luck
Thanks guys , it really works

@ ygemici :

Can you please explain your command ?
$1,$2 ... means first,second,.... patterns in our example
-F -> is set parameter for field separator actually default value is already single space so isnt neccessary if not changed more before
Fields
$1 -> name=VDSL_TTV_
$2 -> HN_SUB
$3 -> create
and we print it..Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Parsing a long string string problem for procmail

Hi everyone, I am working on fetchmail + procmail to filter mails and I am having problem with parsing a long line in the body of the email. Could anyone help me construct a reg exp for this string below. It needs to match exactly as this string. GetRyt... (4 Replies)
Discussion started by: cwiggler
4 Replies

2. Shell Programming and Scripting

Need help on parsing string

for i in `cat list`;do lol=`curl -m 2 -s ${i} | grep 'class=info' | cut -d '>' -f14 | cut -d '<' -f1 | sed '/^$/d'`; if ;then echo "$i,$lol" >> dirty; echo "$i,$lol";fi; done cut: you must specify a list of bytes, characters, or fields Try `cut --help' for more information. it gave me that... (0 Replies)
Discussion started by: p33plime
0 Replies

3. Shell Programming and Scripting

String parsing

Hi, name=VDSL_TTV_ HN_SUB create coid=MA5603U phone=5678 portpolicy=APortSelectionPolicy rfu10=TTV rfu3=Dot1q sz7_portmode=VDSL2 rfu5=1234 srprofile.sy_profname=$ADSL_TTV_SubProfile1 I have a line like this. Its a single line.I need the output as name=VDSL_TTV_ HN_SUB create... (1 Reply)
Discussion started by: giri_luck
1 Replies

4. Shell Programming and Scripting

Parsing String

Hello All, I have a case, wherein I have a string of the format "attr1=value1 attr2=value2 attr3=value3 attr4=value4" How do I extract the value associated with for a given attributename. For eg. I need to get a value of "value2" when I give an input for attribute name as "attr2". Note, each... (10 Replies)
Discussion started by: msgforsunil
10 Replies

5. Shell Programming and Scripting

String-parsing!

I need the perl solution for the following : $string="I LOVE INDIA" now, in a new string i need the first character of each word... that is string2 should be "ILN". (10 Replies)
Discussion started by: vijay_0209
10 Replies

6. Shell Programming and Scripting

Parsing of file for Report Generation (String parsing and splitting)

Hey guys, I have this file generated by me... i want to create some HTML output from it. The problem is that i am really confused about how do I go about reading the file. The file is in the following format: TID1 Name1 ATime=xx AResult=yyy AExpected=yyy BTime=xx BResult=yyy... (8 Replies)
Discussion started by: umar.shaikh
8 Replies

7. Shell Programming and Scripting

parsing a string

hi i am new to Shell scripting i have a string "hostName=lpdma520_dev_ipc_us_aexp_com" now i need to parse the string as "var1=lpdma520" please help (7 Replies)
Discussion started by: satish@123
7 Replies

8. Programming

parsing string in c

how can i remove the special characters hi iam print the string variable . suppse: while(str!=NULL) printf("******* %s ********** %d ",str,strlen(str)); output as: ****srinu ******** 5 **** phani******** 63 ****srinu ******** 5 **** phani******** 63 so my problem is how can i... (3 Replies)
Discussion started by: phani_sree
3 Replies

9. Shell Programming and Scripting

Need help on parsing string

String example: /vmfs/volumes/46000471-71d7c414-8f74-0013210cddc3/gistst/gistst.vmx What I would like to do is create a variable and save gistst in it. I thought if I could create an array and split it by '/' then I could use the 4th array element or if they was a way to do a... (13 Replies)
Discussion started by: magnacrazy
13 Replies

10. UNIX for Dummies Questions & Answers

Parsing string

I am passing argument 1-13 to a sh file. I want to parse the string and the get the numbers on either side of "-" in two different variables. I am not familiar with unix .. how can i do this? (3 Replies)
Discussion started by: rolex.mp
3 Replies
Login or Register to Ask a Question