http://qs321.pair.com?node_id=1231790


in reply to Pattern replace in a file name

Hello kaushik9918,

I am sure that fellow Monks will come up with a better solution but here is one possible way :).

#!/usr/bin/perl use strict; use warnings; use feature 'say'; sub processString { my @array = split /\//, shift; my @slice = splice @array, 1, 7; return '/' . join('/', @slice); } my $str = "/fd/gfree/tere/frf4545/geerg/fds/0.1/fsdf/dsakdsa/"; say processString($str); __END__ $ perl test.pl /fd/gfree/tere/frf4545/geerg/fds/0.1

Update:

Including loop for demonstration purposes:

#!/usr/bin/perl use strict; use warnings; use feature 'say'; sub processString { my @array = split /\//, shift; my @slice = splice @array, 1, 7; return '/' . join('/', @slice); } my @array = ("/fd/gfree/tere/frf4545/geerg/fds/0.1/fsdf/dsakdsa/", "/fd/gfree/tere/frf4545/geerg/dfds/5.9/fdsf/fdsfd/", "/fd/gfree/tere/frf4545/geerg/dsad/02.44/fdsf/fdsf/"); say processString($_) for @array; __END__ $ perl test.pl /fd/gfree/tere/frf4545/geerg/fds/0.1 /fd/gfree/tere/frf4545/geerg/dfds/5.9 /fd/gfree/tere/frf4545/geerg/dsad/02.44

One minor question here kaushik9918. I see on your sample of output that you provide us you are having two forward slashes // is this an accident while you where typing it or it is intended to be like this?

Looking forward to your reply.

Hope this helps, BR.

Seeking for Perl wisdom...on the process of learning...not there...yet!

Replies are listed 'Best First'.
Re^2: Pattern replace in a file name
by kaushik9918 (Sexton) on Mar 28, 2019 at 09:56 UTC

    thanks for your time , @hippo has already given me the solution. Regards

      Sure, but thanos1983 gave the solution above before hippo's answer giving you another solution. And maybe it is worth to consider thanos1983's different approach: one can often learn from different approaches or solutions, even though you're satisfied that your problem is solved with hippo's help.