많은 파일이 있는 디렉토리에서 특정 정규식(또는 형식)이 파일에 있으면 파일 이름을 얻고 싶습니다.
예:
ramayana라는 파일에서 "rama"라는 단어가 발견되면 파일 이름 "ramayana"를 인쇄합니다.
파일 이름이 table 인 파일 이름에 ""와 같은 특정 형식이 포함되어 있는 경우
(TEXT - NUMBERS)
셸에서 파일 이름 테이블을 인쇄합니다. 이는 매우 간단합니다.grep "mytext" * | cut -d':' -f1 | uniq
하지만 Perl에서 이를 수행하는 방법
유용한 CPAN 모듈에 대한 제안도 높이 평가됩니다.
답변1
어쩌면 내가 조금 놓쳤을 수도 있지만 원래 요구 사항이 기본적으로 다음과 같다면:
grep -l "mytext" *
그러면 이에 perl
상응하는 내용은 다음과 같이 작성할 수 있습니다.
perl -ne 'if(/mytext/){print"$ARGV\n";close ARGV}' *
노트독자 참고 사항: 다음 코드는 중재자의 의견을 바탕으로 업데이트되었으며 원래 질문과 완전히 호환되지 않습니다.
#!/usr/bin/perl
@list_code=qw{ over 100 elements here };
@original=@ARGV;
foreach $ele (@list_code) {
@ARGV=@original;
@found=();
while (<>) {
if (/\Q$ele\E/) {
push @found,$ARGV;
close ARGV;
}
}
print "$ele found in ",scalar @found," files : \n",join "\n",@found,'';
}