特定のパターンに一致するファイルから行を抽出したいので、500を超えるファイルに対してこれを実行します。また、ファイルの一意の名前を保持する能力も必要です。テキストパターンに基づいて行を選択
awkを使用しましたが、各ファイルを個別に実行する必要があります。ここにリンク(http://bit.ly/nMX8qh)に示す例では
c:\>gawk "/S1901/" Census_Tract_*.csv > Census_Tract_*.csv
私は彼らに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: $!";
}
ありがとうDavidO。このコードは私のために働く。ヘルプをよろしくお願いいたします。 – Krishnan
ようこそ。それはうれしかったです。 – DavidO