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
해당 파일 내에서 검색을 사용하십시오 .