【问题标题】:Can grep be used on a Perl variable?可以在 Perl 变量上使用 grep 吗?
【发布时间】:2010-03-08 17:31:20
【问题描述】:

是否有可能在 Perl 脚本中以一种或另一种方式有效地针对 Perl 变量执行 grep?等效的 Perl 函数同样可以接受,我只是想让解决方案尽可能简单。

例如:

#!/usr/bin/perl
#!/bin/grep

$var="foobar";

$newvar="system('grep -o "foo" $var');

sprintf $newvar;

我希望sprintf $newvar 输出foo

也欢迎在此处提供有关最佳做法的任何反馈。我对 Perl 不是很熟悉。

【问题讨论】:

  • 《Learning Perl》这本书我再怎么推荐也不为过。它写得很好,并且很好地解释了基础知识。看这里:books.google.com/…

标签: perl grep


【解决方案1】:

您可以在 Perl 中使用正则表达式匹配。无需调用外部“grep”命令。

$var =~ /foo/;

请阅读文档perlrequick,了解如何在变量中搜索模式的介绍。 Perl 自己的grep 也很有趣。

$var="foobar";
if ( $var =~ /foo/){
  print "found foo\n";
}

【讨论】:

  • 在示例中,我想要“grep”的文本已经包含在变量中。那么你的建议会变成$newvar = $var =~ /foo/; 还是我误解了?此外,除了我已经熟悉它之外,我没有特别想使用 grep 的原因。
  • 如果找到foo$newvar 将包含搜索的返回值。
  • 太棒了,谢谢。我知道足够危险,但还不足以知道我在寻找什么。 :) 我现在可以完成我正在寻找的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多