Substring based on delimiter, finding last delimiter


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Substring based on delimiter, finding last delimiter
# 1  
Old 12-07-2009
Substring based on delimiter, finding last delimiter

Hi,

I have a string like ABC.123.XYZ-A1-B2-P1-C4. I want to delimit the string based on "-" and then get result as only two strings. One with string till last hyphen and other with value after last hyphen... For this case, it would be something like first string as "ABC.123.XYZ-A1-B2-P1" and secod string as C4.
How can we achieve it? I am using /bin/sh shell.

Thanks for your help.
# 2  
Old 12-07-2009
hello
you can employ perl in your script easily as perl is extremely portable with monstrous regex capabilities. In this I use the greedy quantifier.
Code:
 echo "ABC.123.XYZ-A1-B2-P1-C4 " | perl -wln -e 'print "$1 $2" if /^(.*)\-(.*)$/'
ABC.123.XYZ-A1-B2-P1 C4

regards.
# 3  
Old 12-07-2009
Gaorav
Can you explain this?

if /^(.*)\-(.*)$/
# 4  
Old 12-07-2009
tene..
first I am Gaurav not Gaorav...
well you would have to look at the regex(especially perl's) to understand what they are.
I will explain in short here
. -> a single character except '\n'
* -> 0 or more occurence of the previous character(s)
^ -> start of the string
$ -> end of the string
if you have perl installed then do
Code:
#perldoc perlretut

# 5  
Old 12-07-2009
shell
Code:
INPUT="ABC.123.XYZ-A1-B2-P1-C4"
OUT1=${INPUT%-*}
OUT2=${INPUT##*-}

# 6  
Old 12-07-2009
using sed,

Code:
$ echo "ABC.123.XYZ-A1-B2-P1-C4" | sed 's/\(.*\)-\(.*\)/\1 \2/'

# 7  
Old 12-07-2009
Python
Code:
>>> string="ABC.123.XYZ-A1-B2-P1-C4"
>>> first,last = string.rsplit("-",1)
>>> print first
ABC.123.XYZ-A1-B2-P1
>>> print last
C4
>>>



---------- Post updated at 07:30 AM ---------- Previous update was at 07:30 AM ----------

Python
Code:
>>> string="ABC.123.XYZ-A1-B2-P1-C4"
>>> first,last = string.rsplit("-",1)
>>> print first
ABC.123.XYZ-A1-B2-P1
>>> print last
C4
>>>

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Splitting strings based on delimiter

i have a snippet from server log delimited by forward slash. /a/b/c/d/filename i need to cut until last delimiter. So desired output should look like: /a/b/c/d can you please help? Thanks in advance. (7 Replies)
Discussion started by: alpha_1
7 Replies

2. Shell Programming and Scripting

How to separate based on delimiter?

Hi, Variable=MKT1,MKT2,MKT3 and so on i am trying to seperate MKT1,MKT2,MKT3 and store each in a variable. the values in variable1 may vary. I am using bash (8 Replies)
Discussion started by: arghadeep adity
8 Replies

3. Shell Programming and Scripting

Separate string based on delimiter

Hi, for fd in $(grep "/tmp/" hello.properties)The grep gives me the below output: deploydir=/tmp/app1/dfol prodir= /tmp/hello/prop ...... Now i want to store /tmp/app1/dfol then /tmp/hello/prop in a variable so that i can check if those folders files exists or not. The delimiter would... (4 Replies)
Discussion started by: mohtashims
4 Replies

4. Shell Programming and Scripting

Perl Code to change file delimiter (passed as argument) to bar delimiter

Hi, Extremely new to Perl scripting, but need a quick fix without using TEXT::CSV I need to read in a file, pass any delimiter as an argument, and convert it to bar delimited on the output. In addition, enclose fields within double quotes in case of any embedded delimiters. Any help would... (2 Replies)
Discussion started by: JPB1977
2 Replies

5. Shell Programming and Scripting

Finding delimiter

Hi, I need to find the field separator for the given files. Ex- abc.txt is "|" delimited file , when I give command the output should be "|" and that shud store it in another variable. This is same with csv files or any other delmited file. If I give the filename it shud give the... (1 Reply)
Discussion started by: Prashanth B
1 Replies

6. Shell Programming and Scripting

Shell script to put delimiter for a no delimiter variable length text file

Hi, I have a No Delimiter variable length text file with following schema - Column Name Data length Firstname 5 Lastname 5 age 3 phoneno1 10 phoneno2 10 phoneno3 10 sample data - ... (16 Replies)
Discussion started by: Gaurav Martha
16 Replies

7. Shell Programming and Scripting

Need help for finding correct delimiter

I've a series of words in the format "abc0001d" till "abc1999d". I would like to use delimiter to cut the word from abc0001s to two words: abc00 and 01d. Help me in finding the correct delimiter to cut in desired way. (7 Replies)
Discussion started by: surdileep
7 Replies

8. Shell Programming and Scripting

How to cut by delimiter, and delimiter can be anything except numbers?

Hi all, I have a number of strings like below: //mnt/autocor/43°13'(33")W/ and i'm trying to get the numbers in this string, for example 431333 please help thanks ahead (14 Replies)
Discussion started by: sunnydanniel
14 Replies

9. UNIX for Dummies Questions & Answers

Trimming a string based on delimiter.

Hi, I have a string say "whateverCluster". I need everthing apart from the string "Cluster" Input: whateverCluster Desired output: whatever (5 Replies)
Discussion started by: mohtashims
5 Replies

10. Shell Programming and Scripting

split record based on delimiter

Hi, My inputfile contains field separaer is ^. 12^inms^ 13^fakdks^ssk^s3 23^avsd^ 13^fakdks^ssk^a4 I wanted to print only 2 delimiter occurence i.e 12^inms^ 23^avsd^ (4 Replies)
Discussion started by: Jairaj
4 Replies
Login or Register to Ask a Question