Я хочу извлечь строки из файла, которые соответствуют определенному шаблону, и я хочу сделать это для более чем 500 файлов. Он также должен иметь возможность сохранять уникальное имя файла.
Я использовал awk, но затем я должен сделать каждый файл отдельно.
c:\>gawk "/S1901/" Census_Tract_*.csv > Census_Tract_*.csv
В примере, показанном в ссылке здесь (http://bit.ly/nMX8qh) Я хочу сохранить только те записи, в которых есть S1901. Извинения за внешнюю ссылку, но я не могу сохранить форматирование таблицы.
Я нашел некоторый Perl-код, который я использовал для его написания, но он сохраняет все строки и не выбирает только те строки / записи, где соответствует шаблон. Любые советы будут высоко оценены. Код Perl ниже:
#perl -w
$pattern = "Subject_Census*.csv"; # process only those files that match pattern
while (defined ($in = glob($pattern))) {
($out = $in) =~ s/\.csv$/.outcsv/; # read from "xyz.in" and write to "xyz.out"
open (IN, "<", $in) or die "Can't open $in for reading: $!";
open (OUT,">>", $out) or die "Can't open $out for writing: $!";
while (<IN>) {
$mystring =~ /S1901/;
print OUT $_ if $mystring == 0;
}
close (IN) or die "Can't close $in: $!"; # good idea to do some housekeeping
close (OUT) or die "Can't close $out: $!";
}