0

我的文件夹中有很多文本文件。文件夹是'c:\vehicles'。对于每个文本文件,我想复制任何包含以下单词的行:型号、品牌、年份。我要写入的文件是“vehicles.txt”,位于“c:\”中。

我知道我写错了代码。我应该怎么做才能纠正它?谢谢您的帮助。

C:\vehicles $ ls -A | xargs head -qn 30 | perl -Mstrict -wne 'if( $ +_ =~ /(make)|(model)|(year)/ ) { print "$_"; }' > vehicles.txt grep -rE "(make|model|year)" c:

4

1 回答 1

2

也许以下内容会有所帮助:

use strict;
use warnings;

for my $file (<*.txt>) {
    open my $fh, '<', $file or die $!;

    while (<$fh>) {
        chomp;
        print "$_\n" if /(?:\b(?:model|make|year)\b)/i;
    }
    close $fh;
}

假设脚本将在 中c:\vehiclesperl scriptName.pl >vehicles.txt请在命令提示符处键入。该<*.txt>表示法返回目录中所有文本文件的列表。这些文件中的每一个都被逐行打开和读取。如果在一行中找到您要查找的任何单词,则将其打印出来。该>vehicles.txt符号表示打印到文件。

于 2013-01-25T03:59:24.810 回答