我在使用 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() ? 谢谢你的帮助
最佳答案
pgrep
在您使用管道时匹配自身。如果您通过管道输入 cat
而不是 wc
,则可以验证这一点。您可以通过像这样添加一些大括号来避免这种情况,这样模式就不再匹配自身。
my $test = `pgrep -f '[b]labla' | /usr/bin/wc -l`;
关于Perl 执行带有计数行的 pgrep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433927/