【问题标题】:How do I search for a value in a file and print it using Perl?如何在文件中搜索值并使用 Perl 打印?
【发布时间】:2013-01-17 17:50:42
【问题描述】:

我在搜索和打印值时遇到问题。这就是我到目前为止所拥有的。我究竟做错了什么?如何通过在输出中搜索得到想要的输出?

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;
} 

//输出

{
committed = 313733;
init = 3221225472;
max = 3137339392;
used = 1796598680;
}

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

【问题讨论】:

  • 使用该代码,您的 /home/out1 文件将永远不会超过一行。即使您将open 语句移到循环之外。
  • 是的,刚刚验证,你是对的
  • 我如何通过传递所需参数(已使用)从标准输出获取它而不是写入文件
  • @Shashank 这句话没有意义。

标签: perl shell unix jmx


【解决方案1】:

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

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

【讨论】:

  • 对不起,我想从输出而不是从文件中获取输出
猜你喜欢
  • 2018-09-25
  • 2017-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
  • 2014-07-08
  • 1970-01-01
  • 2022-08-02
相关资源
最近更新 更多