我目前在捕获反引号 shell 命令的输出时遇到了一个非常简单的问题。我很抱歉这个问题很简单。
我有一些排序数组(@valid_runs),我知道它包含连续的重复元素。我想使用反引号将此数组回显到 uniq。我想在一个数组中捕获 STDOUT。我试图这样做。
@unique_valids = `echo '@valid_runs' | uniq`;
print @unique_valids;
此打印语句没有产生任何结果。就此而言,这也不是。
@unique_valids = `echo '@valid_runs'`;
print @unique_valids;
我知道如何使用 uniq 和 echo。这对我来说似乎很奇怪。我认为这与 perl 数组有关,而不是正确使用这些命令。我在其他地方搜索了一下,所以请不要仅仅因为解决方案看起来微不足道而对我投反对票。感谢你的宝贵时间。
关于解决方案的说明:就处理 uniq 问题而言,TLP 的解决方案是最直接的。我相当灵活,因为所有回复都建议不要针对这个问题进行系统调用。如果 Perl 的 uniq 函数与 Unix 的 uniq 相同,那么数组应该保持排序。
如果您不关心排序结果,John Corbett 的解决方案效果很好。