我有一个包含一些数据的文本文件.我试图仅在ID列中搜索EA 并打印整行.但代码识别所有EA并打印所有行.我应该添加什么代码来满足条件?再次感谢:-)!
数据:
姓名年龄ID
---------------------
KRISTE,22,EA 2008
J EA N,21,ES4567
JAK,45,EA 2008
代码打印:
KRISTE ,22,EA 2008
J EA N,21,ES4567
JAK,45,EA 2008
期望的输出:
KRIS,22,EA 2008
Kane,45,EA 2008,
file='save.txt';
open(F,$file)||die("Could not open $file");
while ($line=<F>){
if ($line=~ m/$EA/i) {
my @cells=($f1,$f2,$f3)= split ',',$line;
print "<TD>f1</TD>";
print "<TD>f2</TD>";
print "<TD>f3</TD>";
}
Run Code Online (Sandbox Code Playgroud)
brian和Jeremy的代码组合修复了所有问题:
use strict;
use warnings;
my $file = 'save.txt';
open my $fh, "<", $file or die "Could not open $file: $!";
while ($line = <$fh>)
{
my($f1, $f2, $f3) = split ',', $line;
if ($f3 =~ m/EA/i)
{
print "<TD>$f1</TD>";
print "<TD>$f2</TD>";
print "<TD>$f3</TD>";
}
}
Run Code Online (Sandbox Code Playgroud)
Brian已经将匹配模式概括为use CGI;
和my $EA = param('keyword');
但是我解除了,因为我没有看到它适用于这个问题.
您应该发布用于说明问题的实际示例程序.这是你的清洁程序:
use strict;
use warnings;
use CGI;
my $EA = param('keyword');
my $file = 'save.txt';
open my $fh, "<", $file or die "Could not open $file: $!";
while( $line=<$fh> ) {
if( $line=~ m/$EA/i ) {
my( $f1, $f2, $f3 ) = split ',', $line;
print "<TD>$f1</TD>";
print "<TD>$f2</TD>";
print "<TD>$f3</TD>";
}
}
Run Code Online (Sandbox Code Playgroud)
这里有一些可以帮到你的东西.
归档时间: |
|
查看次数: |
5886 次 |
最近记录: |