모든 .txt 파일에서 문자열 [중복] 검색

모든 .txt 파일에서 문자열 [중복] 검색

test123내 하드 드라이브에 있는 모든 텍스트 파일에서 문자열을 검색할 수 있는 방법이 있습니까?

답변1

find다음을 사용하여 모든 .txt파일을 grep얻을 수 있습니다 .

$ find / -type f -name '*.txt' -exec grep 'test123' {} +

어디:

  • /모든 서버에서 검색하세요.
  • -type f디렉토리는 검색하지 않고 파일만 검색합니다.
  • -name '*.txt'모든 .txt파일 찾기
  • -exec grep 'test123'test123찾은 모든 파일 검색
  • {}단일 인수뿐만 아니라 명령 인수에 나타날 때마다 현재 파일 이름으로 대체됩니다.
  • +실행 시간이 크게 단축됩니다(실행하기 전에 매개변수를 연결하므로).

답변2

"모든 텍스트 파일"은 .txt로 끝나는 모든 파일을 의미한다고 가정합니다.

find / -type f -name '*.txt' -exec grep -i 'test123' {} \;

또는

find / -type f -name '*.txt' -exec grep -i 'test123' {} +

답변3

find / -type f -exec grep -I test123 {} +

+대신 사용하는 버전은 \;훨씬 빠르며 -I바이너리를 무시합니다. 또는 단순히 재귀 grep을 사용하십시오.

grep -Ir test123 /

2>/dev/null"Permission Denied" 행이 많이 있으므로 이 작업도 수행할 수 있습니다 .

답변4

올바른 방향을 알려주는 내용:

find / -type f -name *.txt하드 드라이브가 하나만 있다고 가정하고 모든 .txt 파일을 찾습니다. 그런 다음 grep해당 파일 내에서 검색을 사용하십시오 .

관련 정보