Hi All,

Further to my previous email, if i add the fulll path of each directory the,
$_  Sustitution works with below code

#!/usr/bin/perl
 use strict;
 use warnings;
my @list = ( '/usr/openv/netbackup/logs/bpcd' ,
'/usr/openv/netbackup/logs/bprd' , '/usr/openv/netbackup/logs/admin' ,
'/usr/openv/netbackup/logs/bpdbjobs');
 foreach (@list)
 {
  system '/usr/bin/find', $_, '-mtime', 3, '-exec', 'ls', '{}', ';';
 }

so not sure, why my, if change as below, it throws the error. Kindly let me
know.

 my $base = "/usr/openv/netbackup/logs";
my @dirs = qw(bpcd bprd admin bpdbjobs bpsched nbdb user_ops bpbackup bpdbm
bptm nbpushdata vmd bpbkar bphdb db_log tlhcd vnetd bpbrm bpjobd tlhd );

foreach my $dir1 (@dirs) {
my @new= "$base/$dir1 \n";
foreach (@new){
system qq[(/usr/bin/find "$_" -mtime 3 -exec ls -l '{}' \\\;)]
}
}

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

error output
/usr/bin/find: stat() error /usr/openv/netbackup/logs/bpcd
: No such file or directory
/usr/bin/find: stat() error /usr/openv/netbackup/logs/bprd
: No such file or directory

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

Cheers
Js







On Thu, Apr 1, 2010 at 5:24 PM, jet speed <speedj...@googlemail.com> wrote:

> Hi Chaps,
>
> I need bit more help with this, i slightly modified the code based on the
> inputs, still having the same issue of $_ substitution.
>
> Appreciate your help with this.
>
> ##################################################
>
>
> #!/usr/bin/perl
> use strict;
> use warnings;
>
> my $base = "/usr/openv/netbackup/logs";
> my @dirs = qw(bpcd bprd admin bpdbjobs bpsched nbdb user_ops bpbackup bpdbm
> bptm nbpushdata vmd bpbkar bphdb db_log tlhcd vnetd bpbrm bpjobd tlhd );
>
> foreach my $dir1 (@dirs) {
> my @new= "$base/$dir1 \n";
> foreach (@new){
> system qq[(/usr/bin/find "$_" -mtime 3 -exec ls -l '{}' \\\;)]
> }
> }
>
> ####################################################
>
> error output
> /usr/bin/find: stat() error /usr/openv/netbackup/logs/bpcd
> : No such file or directory
> /usr/bin/find: stat() error /usr/openv/netbackup/logs/bprd
> : No such file or directory
>
> #########################################################
>
>
> Kindly let me know why this error.
>
> Regds
> Js
>
>
>
>
>
>
>
> On Mon, Mar 29, 2010 at 4:35 PM, jet speed <speedj...@googlemail.com>wrote:
>
>> Many Thanks Simon, John and everyone else for pointing me to the correct
>> direction. Cheeers !!
>> Js
>>
>>   On Fri, Mar 26, 2010 at 7:03 PM, Shlomi Fish <shlo...@iglu.org.il>wrote:
>>
>>> On Friday 26 Mar 2010 20:51:17 John W. Krahn wrote:
>>> > jet speed wrote:
>>> > > Hi,
>>> >
>>> > Hello,
>>> >
>>> > > I have a simple code below,
>>> > >
>>> > > ###################################
>>> > > #!/usr/bin/perl
>>> > >
>>> > > use strict;
>>> > > use warnings;
>>> > >
>>> > > my @list =( '/usr/data/logs' , '/usr/data1/logs');
>>> > > foreach (@list)
>>> > > {
>>> > > print "$_ \n";
>>> > >
>>> > > system "(/usr/bin/find "$_" -mtime 3 -print -exec ls '{}' \;)";
>>> > > }
>>> > > ################################################
>>> > >
>>> > > I am not sure how to get the $_ value inside the system command, any
>>> tips
>>> > > would be most helpful.
>>> >
>>> > The escape \ in front of the semicolon is being interpolated away by
>>> > perl before the shell sees it so you need to escape it:
>>> >
>>> > system "(/usr/bin/find "$_" -mtime 3 -print -exec ls '{}' \\\;)";
>>> >
>>>
>>> 1. This is invalid Perl code - you cannot do "String"$_"OtherString".
>>>
>>> 2. \\\; has one redundant \ - you can use "\\;" inside a double quoted
>>> string
>>> instead.
>>>
>>> > Or you need to bypass the shell altogether:
>>> >
>>> > system '/usr/bin/find', $_, '-mtime', 3, '-print', '-exec', 'ls', '{}',
>>> > ';';
>>> >
>>> >
>>> > (You do realize that "-print" and "exec ls {} \;" do the same thing?)
>>> >
>>> >
>>> >
>>> > John
>>>
>>> --
>>> -----------------------------------------------------------------
>>> Shlomi Fish       http://www.shlomifish.org/
>>> "Humanity" - Parody of Modern Life - http://shlom.in/humanity
>>>
>>> Deletionists delete Wikipedia articles that they consider lame.
>>> Chuck Norris deletes deletionists whom he considers lame.
>>>
>>> Please reply to list if it's a mailing list post - http://shlom.in/reply.
>>>
>>>  --
>>> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
>>> For additional commands, e-mail: beginners-h...@perl.org
>>> http://learn.perl.org/
>>>
>>>
>>>
>>
>

Reply via email to