특정 패턴과 일치하는 파일에서 행을 추출하려면 500 개가 넘는 파일에 대해이 작업을 수행하고 싶습니다. 또한 파일의 고유 한 이름을 유지할 수 있어야합니다.텍스트 패턴을 기반으로 행 선택
awk를 사용했지만 각 파일을 개별적으로 수행해야합니다. 여기 링크 (http://bit.ly/nMX8qh) 내가 그들에 S1901을 만 기록을 보유 할의 예에서
c:\>gawk "/S1901/" Census_Tract_*.csv > Census_Tract_*.csv
. 외부 링크에 사과하지만 나는 테이블의 형식을 유지할 수 없습니다.
필자가 쓰던 일부 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