Perl用计数行执行pgrep

时间:2014-06-26 15:01:19

标签: perl count pipe ps

使用pgrep和wc命令时遇到问题。我找到2行,我只期望1行。

my $test = `pgrep -f 'blabla'`;
print $test;    <------ print the good PID (only one)

my $test = `pgrep -f 'blabla'|/usr/bin/wc -l`;
print $test;  <------- print 2 and a carriage return

我发现在管道之前插入了回车符,因此wc计数2行。 有没有办法在管道之间做一个中间的chomp()? 谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

使用管道时,

pgrep匹配。如果您输入cat而不是wc,则可以验证这一点。你可以通过添加一些这样的大括号来避免这种情况,这样模式就不再与自身匹配了。

my $test = `pgrep -f '[b]labla' | /usr/bin/wc -l`;