gpt4 book ai didi

regex - 如何在 Perl 中实现 Unix grep?

转载 作者:行者123 更新时间:2023-12-04 04:43:11 25 4
gpt4 key购买 nike

我该如何实现 grep Perl中的Unix?我尝试使用 Perl 的内置 grep .这是不起作用的代码:

$pattern = @ARGV[0];
$file= @ARGV[1];

open($fp,$file);

@arr = <$fp>;

@lines = grep $pattern, @arr;

close($fp);
print @lines;

顺便说一下,我只尝试基本的 grep功能不全,其次我不想自己做字符串解析。我想使用内置 grep或 Perl 的某些功能。

提前致谢 :)

最佳答案

在 Perl 中,我们使用 @ 来引用整个数组。 .但是为了引用单个元素,我们使用 $ .

所以,你需要使用 $而不是 @在这些行上:

$pattern = @ARGV[0];
$file= @ARGV[1];



这个
@lines = grep $pattern, @arr;

应该
@lines = grep /$pattern/, @arr;

grep在 Perl 中具有以下一般语法:
grep EXPR,LIST

它评估 EXPR对于 LIST 的每个元素并返回由表达式求值为真的元素组成的列表值。
EXPR在您的情况下正在搜索模式 $pattern在数组中 @arr .要搜索,您需要使用 /PATTERN/没有 /字符串 $pattern将被评估为真或假。

关于regex - 如何在 Perl 中实现 Unix grep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3848360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com