如何在文件中搜索值并使用Perl打印它?

如何在文件中搜索值并使用Perl打印它?,perl,shell,unix,jmx,Perl,Shell,Unix,Jmx,我无法搜索值并打印它。这就是我目前所拥有的。我做错了什么?如何通过在输出中搜索来获得所需的输出 my $host = $ARGV[0]; my $port = $ARGV[1]; my $domain = $ARGV[2]; my $bean = $ARGV[3]; my $get = $ARGV[4]; open(FILE, ">", "/home/hey"); print FILE "open $host:$port\n"; print FILE "domain $domain\n"

我无法搜索值并打印它。这就是我目前所拥有的。我做错了什么?如何通过在输出中搜索来获得所需的输出

my $host = $ARGV[0];
my $port = $ARGV[1];
my $domain = $ARGV[2];
my $bean = $ARGV[3];
my $get = $ARGV[4];

open(FILE, ">", "/home/hey");
print FILE "open $host:$port\n";
print FILE "domain $domain\n";
print FILE "bean $bean\n";
print FILE "get -s $get\n";
print FILE "close\n";
close FILE;    
open JMX, "/root/jdk1.6.0_37/bin/java -jar /var/scripts/jmxterm-1.0-alpha-4-uber.jar -v      silent -n < /home//hey |";
open (dbg, ">", "/home/donejava1");
#print JMX "help \n";

foreach ( <JMX> )
{
chomp;
print $_;
open (LOG, ">", "/home/out1");
print LOG $_;
close LOG;
} 

//如何打印1796598680,查找属性“used”?

以下示例应为您提供解决方案

perl -lne'print $1 if /used\s*=\s*(\d+);/' filename

使用该代码,您的/home/out1文件中永远不会有多行。即使你将
open
语句移出循环。是的,刚刚验证,你是对的。我如何通过传递所需参数(used)@Shashank从标准输出中获取它,而不是从输出中写入文件?这句话没有意义。对不起,我想从输出中获取输出,而不是从文件中获取输出
perl -lne'print $1 if /used\s*=\s*(\d+);/' filename