내용이 특정 패턴을 포함하는 파일(디렉토리 또는 목록)의 이름을 반환합니다.

내용이 특정 패턴을 포함하는 파일(디렉토리 또는 목록)의 이름을 반환합니다.

이 작업을 수행할 수 있는 기존 방법이 있는지 또는 완전한 스크립트가 필요한지 알아보려고 합니다.

고유한 파일에 대해 true 또는 yes를 반환하는 것에 대한 스레드만 찾았습니다. 파일을 인쇄하면 grep파일 이름에 대한 정보가 삭제됩니다.

답변1

@steeldriver가 지적했듯이 -l이 옵션은 grep가장 짧은 솔루션입니다.

grep -l Pattern Directory출력에 주어진 Pattern.

답변2

목록인 경우 목록을 읽을 수 있고, 디렉터리인 경우 파일을 반복할 수 있습니다.

while read -r file; do
  grep -q PATTERN "$file" && echo "$file contains PATTERN"
done < file.txt 

패턴 및 grep 호출을 추가하거나 if 문을 사용할 수 있습니다.

for file in ./*; do
  grep -q PATTERN "$file" && echo "$file contains PATTERN"
done

파일에 대해서만 grep에 테스트를 추가하고 더 많은 grep을 추가하거나 루프 내에서 if 문을 사용할 수 있습니다. 루프는 재귀적이지 않으므로 쉘 와일드카드를 사용해야 합니다.글로벌 스타아마도빈 공. 실용적인 사항찾다제가 아는 한 더 빨리 처리할 수 있습니다. 물론 위의 해결 방법을 사용하려면 파일과 동일한 디렉터리에 있어야 합니다.

관련 정보