如何编写Perl脚本实现按关键字输出文件对应行?
Perl 实现文件内容关键字匹配脚本
现有文件aa.txt内容如下:
John Norman
Robert Anson
Christopher Fowler
Robert Harris
Dan Simmons
以下是满足需求的Perl脚本:
#!/usr/bin/perl use strict; use warnings; # 读取用户输入的关键字 print "请输入要查找的关键字: "; chomp(my $keyword = <STDIN>); # 打开aa.txt文件,失败则输出错误信息 open(my $fh, '<', 'aa.txt') or die "无法打开文件 aa.txt: $!"; # 逐行检查并输出匹配的行 while (my $line = <$fh>) { chomp $line; print "$line\n" if $line =~ /\Q$keyword\E/; } close $fh;
关键说明:
strict和warnings:开启严格模式与警告,规避代码中的潜在问题chomp:去除输入内容和文件行末尾的换行符,避免多余空行\Q$keyword\E:自动转义关键字中的正则特殊字符(如*、.),确保按字面内容匹配die语句:文件打开失败时终止程序并输出具体错误原因,方便排查问题
使用方法:
- 将上述代码保存为
search.pl - Linux/macOS下赋予执行权限:
chmod +x search.pl,然后运行./search.pl - Windows环境直接通过命令行运行:
perl search.pl - 输入关键字后回车,即可看到所有匹配的行
内容的提问来源于stack exchange,提问作者Trí Trương
相关产品推荐
相关产品推荐

