Visit Our UNIX and Linux User Community


regex to select last part of a path


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting regex to select last part of a path
# 1  
Old 07-31-2009
regex to select last part of a path

Hi all,
I am learning the use of regular expression and I would like to know which regex can be used to select only the last part of a directory path name.

Something like:
/dir1/dir2/dir2
and I want to select the last /dir2 where dir2 can be any kind of string.

Thanks a lot for your help. Cheers,
Elric
# 2  
Old 07-31-2009
This isn't regex (at least I don't think it is) but you could accomplish it like this:

Code:
$ cat test.sh
#!/bin/bash
string="/dir1/dir2/dir2"
echo $string
string=${string##*/}
echo $string

$ ./test.sh
/dir1/dir2/dir2
dir2

Actually, after I posted this I reread your "I am learning the use of regular expression" line. My post isn't relevant
# 3  
Old 07-31-2009
In Perl it would be
Code:
$string = "/dir1/dir2/dir2";
$string =~ m|(/.+?)$|;
print $1;

# 4  
Old 07-31-2009
thanks to everybody but I think there is a problem because the output printed by the perl script is:

/dir1/dir2/dir2

I think it is due to the ".+" that includes the / character so it matches all the string starting from the first /dir1. Or maybe I did something wrong in my script... I am checking.
However, how can I veto the / from .+ ?
# 5  
Old 07-31-2009
Hm, you're right, should have checked that. Change that from (/.+?) to (/[^/]+?) and it should be fine.
# 6  
Old 07-31-2009
Quote:
Originally Posted by mglenney
This isn't regex (at least I don't think it is)

You're right; the shell uses filename expansion patterns, not regular expressions.
Quote:
but you could accomplish it like this:

Code:
$ cat test.sh
#!/bin/bash
string="/dir1/dir2/dir2"
echo $string
string=${string##*/}
echo $string

$ ./test.sh
/dir1/dir2/dir2
dir2

Actually, after I posted this I reread your "I am learning the use of regular expression" line. My post isn't relevant
# 7  
Old 08-01-2009
I works perfectly, thanks to everyone ! Smilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #942
Difficulty: Medium
The underlying Data Link Layer never poses limits to the maximum frame size.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to select First two directory in from path name?

Can somebody help me on below question I have path and i want to select first two directory name in variable how we can do this. /Myname/xyz/yourname/abc/somebodyname i want to select /Myname/xyz in variable. Quick help will be appriciated. Thanks in advance Regards, Kumar (10 Replies)
Discussion started by: yadavricky
10 Replies

2. Shell Programming and Scripting

How to select the shortest path in grep search?

Hi, How can I display only one shortest path (A/B/configure)? $ grep configure file.txt A/B/configure A/B/C/configure A/B/C/D/configure Thank you. (9 Replies)
Discussion started by: hce
9 Replies

3. Shell Programming and Scripting

Select a specific part of the string and print it

Hi all, I have a string that looks like: #!/bin/sh options="arguments: --user=alpha --group=beta --prefix=/usr/share --proxy-path=/proxy --proxy-tmp=/tmp --conf-path=/etc" My goal is to transform the string into an array, then for each key, if it starts with "--proxy" to print the string... (2 Replies)
Discussion started by: TECK
2 Replies

4. Shell Programming and Scripting

Using Sed to remove part of line with regex

Greetings everyone. Right now I am working on a script to be used during automated deployment of servers. What I have to do is remove localhost.localdomain and localhost6.localdomain6 from the /etc/hosts file. Simple, right? Except most of the examples I've found using sed want to delete the entire... (4 Replies)
Discussion started by: msarro
4 Replies

5. Shell Programming and Scripting

Selecting a part of the text (regex pattern, awk, sed)

Hello, let's start by giving you guys a few examples of the text: "READ /TEXT123/ABC123" "READ /TEXT123/ABC123/" "READ TEXT123/ABC123" "READ TEXT123/ABC123/" "READ TEXT123/TEXT456/ABC123" "READ /TEXT123/TEXT456/ABC123" "READ /TEXT123/TEXT456/ABC123/" TEXT and ABC can be and I... (5 Replies)
Discussion started by: TehOne
5 Replies

6. Shell Programming and Scripting

using regex to get part of a string ?

Hi there, i wonder, is it possible to use regular expressions to partially select a string? I have a bunch of server names which look like this server1z-test server2z2 server45z-primary server13z3 I want to extract up to and including the 'z' in the server name, so for example ... (4 Replies)
Discussion started by: hcclnoodles
4 Replies

7. Shell Programming and Scripting

How to select or make reference to, part of a field

For a field format such as AAL1001_MD82, how do I select(and use in if statement) only the last four elements( in this case MD82) or the first three elements (in this case AAL)? For instance, how do I do the following - if first three elements of $x == yyy, then ... (5 Replies)
Discussion started by: akshaykr2
5 Replies

8. Shell Programming and Scripting

How to select the path that contains a certain string from a certain file?

Hi, I am new to this world of shell programming. I am facing a problem that is : I have directory which has many sub directories at different depth. say A/B/C/files A/B/files A/B/C/D/files In this directory structure there exists a file called ".project" in some of the sub... (2 Replies)
Discussion started by: bhaskar_m
2 Replies

9. Shell Programming and Scripting

With Regex Spliting the string into Alphanumeric and Numeric part

Hi there With shell script I'm trying to split the string into two parts. One is alphanumeric part, the other one is a numeric part. dummy_postcode_1 = 'SL1' --> res_alpha = 'SL' and res_numeric = '1' dummy_postcode_2 = 'S053' --> res_alpha = 'S' and res_numeric = '053' ... (1 Reply)
Discussion started by: ozgurgul
1 Replies

10. Shell Programming and Scripting

getting the path part of an argument

Seems I'm inundating this forum with questions, but anyway: I am writing a script that should accept one and only one argument when called. That argument should designate a file, either with path/filename or just filename. Now to the difficult bit: I want to figure out a way to store... (9 Replies)
Discussion started by: ropers
9 Replies

Featured Tech Videos