여러 파일의 텍스트를 일치시키려면 "grep"을 사용하십시오.

여러 파일의 텍스트를 일치시키려면 "grep"을 사용하십시오.

여러 파일에 데이터가 있습니다. 모든 파일에서 일치하는 텍스트를 찾고 싶습니다. 이 명령을 사용할 수 있나요 grep? 그렇다면 어떨까요?

답변1

명령줄에 모든 파일을 추가하기만 하면 됩니다. * 또는 ? 또는 쉘에서 허용하는 모든 것을 자리 표시자로 사용할 수 있습니다.

맨페이지에서:

grep [OPTIONS] PATTERN [FILE...]

의미: 원하는 파일 수.. 또는 stdin/pipe를 grep하려는 경우 없음.

답변2

파일의 정확한 위치는 모르지만 이름은 알고 있는 경우 다음을 사용할 수 있습니다 find.

find .  \( -name "filename1" -o -name "filename2" \) -exec grep "<grepstatement>" '{}' \; -print

이러한 파일은 이 디렉터리 어딘가에 있다고 가정합니다.

답변3

grep 'mydata' *

별표는 *여러 파일을 검색한다는 의미입니다. 여러 디렉터리에 있는 여러 파일을 검색하려는 경우 -R재귀 검색을 추가할 수 있습니다.

grep 'mydata' * -R

답변4

나는 마침내 다음을 수행했습니다.

grep -rli 'match_me' -- file1 file2 file3

이름에 이중 대시가 없다는 것은 더 이상 플래그를 정의할 수 없다는 것을 의미합니다. 이는 Debian/Bash 시스템에서 널리 사용되는 표준인 것 같습니다. 일반적으로 나머지 인수는 모두 파일 경로입니다. 면책 조항이지만 이것이 의도된 의미인지 아니면 단지 내가 사용하는 도구의 증상인지는 알 수 없습니다.

관련 정보