我在文件夹中有很多文本文件。该文件夹是'c:\ vehicles'。对于每个文本文件,我想复制包含单词的任何行:model,make,year。我想写的文件是'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:
答案 0 :(得分: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:\vehicles
,请在命令提示符下键入perl scriptName.pl >vehicles.txt
。
<*.txt>
表示法返回目录中所有文本文件的列表。这些文件中的每一个都是逐行打开和读取的。如果在一条线上找到您要查找的任何单词,则会打印出来。 >vehicles.txt
表示法表示打印到文件。