Need to split a string


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need to split a string
# 1  
Old 03-17-2013
Question Need to split a string

Hi,

We have a SunOS 5.10 Generic_142900-13 sun4v sparc SUNW,T5240.

I'm trying to find a way to split a string into 2 variables.

Ex:
parm1="192.168.1.101/parent/child"

What I need to do is split the string above into:

host="192.168.1.101"
location="parent/child"

I saw the solution provided here https://www.unix.com/shell-programmin...tion-file.html but somehow we don't have the -o option for grep as I keep getting illegal option --o.

The purpose of this is for a shell script already created to do an FTP function. Originally it was intended for accepting HOST, USER, PASS and FILE parameters only. Basically file goes to whatever the main directory on FTP connect. Now users are passing HOST/folder as value for HOST parameter which gives out an error now since 192.168.1.101/parent/child is not a valid HOST. And it would be a lot of work to add another parameter for LOCATION because a lot of other programs are already using this script so I'm trying to avoid this solution for now.

I'd appreciate any suggestions.

Thanks.
# 2  
Old 03-17-2013
Code:
host=${parm1%%\/*}
location=${parm1#*\/}

This User Gave Thanks to balajesuri For This Post:
# 3  
Old 03-18-2013
Quote:
Originally Posted by balajesuri
Code:
host=${parm1%%\/*}
location=${parm1#*\/}

Thanks.

I'm not quite sure what you did there but correct me if I'm wrong.

The syntax below will show strings before "/". The char "\" is used for escaping. I'm guessing the chars "%%" and "*" at the end are responsible for showing all the characters before "/".

Code:
${parm1%%\/*}

Same thing for the "#*".

Thanks.
# 4  
Old 03-18-2013
%% tells the shell to start looking for the last occurrence of '/' from the end of string and strip off everything (*) from there till the end (this is done by \/*). The last occurrence of '/' from the end of string is the '/' right after 192.168.1.101. So, it deletes this '/' and all that follows, leaving behind just the IP address.

Similarly, #*\/ starts looking from the beginning of string until the first occurrence of '/'. The first occurrence of '/' from the beginning of string is the '/' right after 192.168.1.101. So it deletes the IP address and the first occurrence of '/', leaving behind "parent/child".
This User Gave Thanks to balajesuri For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to split a string into array?

value=malayalam # i need to store the value in an array by splitting the character #the output i need is m a l a y a l a m Please use CODE tags for output data as well as required by forum rules! (5 Replies)
Discussion started by: Meeran Rizvi
5 Replies

2. Shell Programming and Scripting

Split the string in perl

Hi All, How to split the string KAR_Celltick_Ban_GSMGW3 and want to pickup the third filed. Sometime the string may be "KAR_Celltick_Ban" like this Thanks in advance (1 Reply)
Discussion started by: sujit_kashyap
1 Replies

3. Shell Programming and Scripting

split string

I am trying to get some data from a file and print it on the same line. I have a script that gets the body of emails and display it, but i want it to display each emails body in one line no matter how big it is. eg insted of this email1: bla bla bla bla bla bla bal email2: bla bla bla... (7 Replies)
Discussion started by: maddog21
7 Replies

4. Shell Programming and Scripting

split string

Hi I am facing a problem in spitting a string. Here is the string -------------------- subject1=10;subject2=30;subject3=40;subjectcode=10001;... Now, I want only marks not the subject code. (there can be 'n' subjects) ie. 10 30 40 My doubt ---------- How do I... (5 Replies)
Discussion started by: jionnet
5 Replies

5. Shell Programming and Scripting

Split string

Hi, can we split a number like this.. if i have something like 85743975945738, can it be converted as 8574-3975-945738 in ksh shell using single command... Thanks! (5 Replies)
Discussion started by: nram_krishna@ya
5 Replies

6. Shell Programming and Scripting

split the string

I need to split the string msu1_2 It should be generic for any string of the form msu<digits>_<digits> so that i get $X =1 and $Y = 2 Please help Thanks (5 Replies)
Discussion started by: asth
5 Replies

7. Shell Programming and Scripting

Split A String

Hi, I am new to scripting and need help splitting a string using space as the delimiter. How can I do that? I want the result to be stored in an Array. I tried using set -A arr $(echo $FILE) echo $arr The result of the above was ''. Thanks. (2 Replies)
Discussion started by: newbie187
2 Replies

8. Shell Programming and Scripting

split string help

could anyone help in running split cmd split("String1,outputArray,"delimiter); with sample script?. for eg i have abc-def-ghi-sdf- my ultimate aim of asking this is i have a string containing hypens, i want to get the string before last n(2) Hypens (4 Replies)
Discussion started by: senthilk615
4 Replies

9. Shell Programming and Scripting

split a string

Hi I have a script that loops though lines of a file and reads each line in to a variable ($LINE). I want to look at the line and split it into it's constituent parts. e.g. a line might be "This is a string" I want to then have variables set to each element thus: A=This B=is C=a... (3 Replies)
Discussion started by: gazingdown
3 Replies

10. Shell Programming and Scripting

split a file at a specified string

to find log files modification, i want to select all the lines of a file behind a string (found by grep ?). :rolleyes: (6 Replies)
Discussion started by: jpl35
6 Replies
Login or Register to Ask a Question