作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
从 Bi 提出的相关问题中,我已经学会了如何将匹配的行与其下方的行一起打印。代码看起来很简单:
#!perl
open(FH,'FILE');
while ($line = <FH>) {
if ($line =~ /Pattern/) {
print "$line";
print scalar <FH>;
}
}
#!perl
@array;
open(FH, "FILE");
while ( <FH> ) {
chomp;
$my_line = "$_";
if ("$my_line" =~ /Pattern/) {
foreach( @array ){
print "$_\n";
}
print "$my_line\n"
}
push(@array,$my_line);
if ( "$#array" > "0" ) {
shift(@array);
}
};
#!perl
$hits=0;
print "INPUT YOUR QUERY:";
chop ($query = <STDIN>);
$dir = 'f:/corpus/';
@files = <$dir/*>;
foreach $file (@files) {
open (txt, "$file");
while($line = <txt>) {
if ($line =~ /$query/i) {
$hits++;
print "$file \n $line";
print scalar <txt>;
}
}
}
close(txt);
print "$hits RESULTS FOUND FOR THIS SEARCH\n";
最佳答案
使用 grep
可能会更容易为此,它允许在匹配前后打印行。使用 -B
和 -A
分别在匹配前后打印上下文。见 http://ss64.com/bash/grep.html
关于perl - 如何打印匹配的行,紧靠其上方的一行和紧邻其下方的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523846/
我是一名优秀的程序员,十分优秀!