我需要帮助只打印文本文件中的某些行(perl)

时间:2012-01-23 09:01:56

标签: perl

我一直在寻找答案,但由于我对perl很新,我可以使用一些解释我的问题的帮助,因为我无法从其他线程中获取答案并调整他们的代码。

我最接近找到最接近的解决方案是: How can I write only certain lines of a file in Perl?

这是同样的问题,但我只想写以“/”开头的行,这是可能的,如果可能的话,我该怎么做?

非常感谢任何帮助,提前谢谢!

3 个答案:

答案 0 :(得分:2)

一个简单的实现可能如下所示:

while (<>) {
    print $_ if /^\//;
}

这会在行开头(/)后立即查找^

如果您想在行的开头允许一些空格,请将正则表达式更改为/^[[:space:]]*\//

基本上,脚本的其余部分与您链接的问题相同。

答案 1 :(得分:2)

Perl也可以在命令行中用于此目的:

$ perl -lne 'print if /^\//' input.txt > output.txt

答案 2 :(得分:1)

你可以这样做:

use strict;
use warnings;

open my $fhi, '<', $input or die "Can not open file $input: $!";
while (<$fhi>) {
    print $_ if m/^\//;
}