regex - 限制perl中的for循环

标签 regex loops perl

我有一点 perl,它通过管道获取数据并运行

... | perl -0 -wnE 'say for /\d+/g'

它打印从管道之前传递的每个数值。我将如何更改此语法以便仅打印找到的最后十个?

最佳答案

... | perl -M5.010 -ne'say for /\d+/g' | tail -10
... | perl -nle'print for /\d+/g' | tail -10

仅限 Perl:

... | perl -M5.010 -ne'push @n, /\d+/g; splice(@n, 0, -10); END { say for @n }'
... | perl -nle'push @n, /\d+/g; splice(@n, 0, -10); END { print for @n }'

注意事项:

  • -E 不向前兼容,这意味着升级 Perl 可能会破坏程序。它应该只用于一次性代码。替换为 -M5.010 -e
  • -0 试图吞噬输入文件。那不是它的作用。 -0777 应该用于此目的。但是没有理由在这里吞噬输入文件。

关于regex - 限制perl中的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69739860/

相关文章:

java - 如何在 Java 中复制 Apache 重定向正则表达式?

regex - BASH KDialog 多文件输入 - 在特定空间拆分字符串

linux - 如何将多列中的数字排序或重新排列为多行[固定为 4 列]?

c# - 在 C# 中重叠

perl - 如何为 DBIx 类部署测试数据库

linux - 为 mod_perl 更改 perl

php - bbcode 解析器正则表达式帮助

regex - 使用正则表达式而不是唯一值选择行

java - Struts 逻辑 :iterate input field

c# - 如何启用窗体上的所有控件?