免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5468 | 回复: 3
打印 上一主题 下一主题

perl中调用linux系统命令的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-08 23:12 |只看该作者 |倒序浏览
#!/usr/bin/perl

my $NAME="name.txt";

open(RESULT,$ResultFile)||die("Can't open the user's list!\n");

@data=<RESULT>;
foreach(@data)
{
        `grep -ri "$_" dirs >>final.txt`;
}
close RESULT;
exit (0);

就是想在perl中调用系统的grep命令,在dirs这个文件夹中查找包含$_字符的文件
name.txt格式如下:
[root@luzg upload]# more name.txt
script_id(18480)
script_id(18482)
script_id(18483)

结果总是不正确,请问是哪里出问题了呢?

论坛徽章:
0
2 [报告]
发表于 2007-08-09 00:24 |只看该作者
没看懂你的程序
$ResultFile是干啥的
重写了个,应该可以符合你的要求

#!/usr/bin/env perl

#Author: among 20070808

use warnings;
use strict;

my @all_files=glob "*";
my @my_files;

my $pattern="name.txt";
open(RESULT,$pattern) or die ("Can not open pattern file");
my @pat=<RESULT>;
foreach my $file (@all_files)
{
FIND:
{
&nbsp;&nbsp;&nbsp;&nbsp;foreach (@pat)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $thispat=$_;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chomp($thispat);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($file=~m/$thispat/)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;push @my_files,$file;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last FIND;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
}

print "@my_files";

论坛徽章:
0
3 [报告]
发表于 2007-08-09 11:24 |只看该作者

回复 #2 among29 的帖子

昨天贴错了,$ResultFile就是name.txt的变量名

my $ResultFile="name.txt";

open(RESULT,$ResultFile)||die("Can't open the user's list!\n");

论坛徽章:
0
4 [报告]
发表于 2007-08-09 11:39 |只看该作者
可能是没有chomp的问题
你试试吧
我写的那个也该也成
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP