• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 134
  • Last Modified:

Need help with regex?

how do i search for a string that -
"/net/vol01/shot/curtest.../2fa.ca"

and I need to print everything from "/shot... " onwords...
so that
$FILE = /shot/cuetest/wrappers/pix/out/wrappers-2/2fa

Any suggestions....

Thanks
0
sdesar
Asked:
sdesar
1 Solution
 
bluprintCommented:
assuming:
$FILE = "/net/vol01/shot/curtest.../2fa.ca"


then:
$FILE =~ s{/net/vol01(.*)}{$1};

or

$FILE =~ s{(/shot/.*)}{$1};

##############################################

or assuming:
$MY_VAR = "/net/vol01/shot/curtest.../2fa.ca"

then:
$MY_VAR =~ m{/net/vol01(.*)};
$FILE = $1;

or

$MY_VAR =~ m{(/shot/.*)};
$FILE = $1;

0
 
ahoffmannCommented:
s#/net/vol01(.*)#$1#;
# or
s#(/[^/]*){1,2}(.*)#$2#;
0
 
sdesarAuthor Commented:
ed help with one more regex-


my $pwd = $ENV{PWD};


$pwd = /shot/cuetest/wrappers/pix/out/wrappers_test_v3/2fa


I need to ge the word 'test'  its always gain to be between

the two underscores ie  '_'.


Thanks
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
sdesarAuthor Commented:
BTW ..the word 'test' is between '_' and '_v'

0
 
ahoffmannCommented:
s#.*_(test)_v.*#$1#;
0
 
sdesarAuthor Commented:
but, the word 'test will keep changing evertime the user types pwd on a different machine so
I need the ability to recognize the word between a '_' and '_v'

Awaiting more suggestions..

Thanks
0
 
ahoffmannCommented:
.. what's wrong with my suggestion?
0
 
sdesarAuthor Commented:
the word test is in brackets... doesn't that mean it looks for test?
0
 
sdesarAuthor Commented:
#!/usr/local/bin/perl
      2
      3 use strict;
      4
      5  my $pwd = $ENV{PWD};
      6
      7  print "file is : $pwd \n";

         # pwd is - /shot/cuetest/wrappers/pix/out/wrappers_test_v3/2fa.cin
      8
      9
     10
     11 my $take =~ s#.*_(test)_v.#$1#;
     12
     13  while ($pwd = <>) {
     14
     15    if ($pwd = ~/$take/o) {  print "Take : $pwd \n"; }
     16
     17  }
     18
     19

Is this the right way to do it?
0
 
sdesarAuthor Commented:
Seems like 'test' is hard coded.. but its going to change on different machines.
the word test is in brackets... doesn't that mean it looks for test?
0
 
ahoffmannCommented:
s#.*_([^_]*)_v.*#$1#;
0
 
sdesarAuthor Commented:

#!/usr/local/bin/perl
      2
      3 use strict;
      4
      5  my $pwd = $ENV{PWD};
      6
      7  print "file is : $pwd \n";

         # pwd is - /shot/cuetest/wrappers/pix/out/wrappers_test_v3/2fa.cin
      8
        my $newtake;
      9
     10
     11 my $take =~ s#.*_([^_]*)_v.*#$1#;
     12
     13  while ($pwd = <>) {
     14
     15    if ($pwd = ~/$take/o) {  print "Take : $pwd \n"; }
     16
     17  }
     18
         print "Take : $newtake \n";
     19
     
     24
     25  exit;

I need to be able to get the file name from $pwd
get the take from $take =~ s#.*_([^_]*)_v.*#$1#;

And store the result in $newtake.

Here's the code that I currently have.  But, its just printing Take: 4294898770  .. some wierd numbers rather than printing 'test'.


Thanks for all your help.

Awaiting suggestions
0
 
ozoCommented:
$pwd = ~/$take/o
should be
$pwd =~ /$take/o
0
 
sdesarAuthor Commented:
Thanks.. I modified it to $pwd =~ /$take/o  , but now it prints no data ie Take :

more suggestions
0
 
sdesarAuthor Commented:
Thanks ozo and  ahoffmann .. I figured out my probelm.

Fixed it!

It works great!
0
 
sdesarAuthor Commented:
Thanks.

here are your points!
0
 
sdesarAuthor Commented:
One more regex I need help with..

Here's the file -
wrapper_cmp_v2_2kfa_lg8.1-10#.cla

I need to look for '1-10'
The number 1-10 will vary but its always going to be after the . and have a # after it.

Any suggestions.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now