grep에서 이진 파일 일치 결과를 억제하는 방법 [닫힘]


215

grep리눅스에서 사용할 때 , 결과는 종종 많은 "이진 파일 XXX 일치"를 포함하는데, 나는 상관하지 않습니다. 결과 의이 부분을 억제하는 방법 또는 grep에서 이진 파일을 제외하는 방법은 무엇입니까?


12
grep -I .........

1
@skwllsp 그러나 -l을 사용하면 결과에 일치하는 줄이없고 일치하는 파일 이름 만 있습니다.
랜디 텍

행에 대한 옵션이 있습니다 : grep -I -n -H

6
이것은 주제가 아닌가? 와우
CoffeeTableEspresso

답변:


302

사용할 수있는 세 가지 옵션이 있습니다. -Igrep에서 이진 파일을 제외하는 것입니다. 다른 라인 번호와 파일 이름입니다.

grep -I -n -H 


-I -- process a binary file as if it did not contain matching data; 
-n -- prefix each line of output with the 1-based line number within its input file
-H -- print the file name for each match

그래서 이것은 grep을 실행하는 방법 일 수 있습니다 :

grep -InH your-word *

이 작동합니다. Thx @skwllsp
RandyTek

7
모든 폴더 내부를 재귀 적으로 볼 수 -Irn있는 곳을 사용 r합니다. H여기에
exsessive

@vladkras, "H는 여기에 강하다"-당신은 중복을 의미합니다. 즉, 이미 기본 설정입니까?
cp.engr

짧은 옵션이 귀하의 답변에 의미하는 바를 설명해 주셔서 감사합니다. SO에는 너무 많은 간결한 리눅스 명령 답변이 있으며 설명을 제공하지 않습니다.
jrahhali

1
@AaronFranke :이 -n플래그는 grep에게 일치하는 파일의 줄 번호를보고하도록 지시합니다. "1 기반"은 프로그래밍에서 종종 행해지는 것처럼 라인 카운트가 0이 아닌 1에서 시작 함을 의미합니다. 라는 이름의 파일의 첫 번째 줄은 경우에 따라서, example.txt이다 Hello, world, 두 번째 줄은 Hello cat, 그리고 세 번째 줄입니다 cats are cool, 다음을 통해 "고양이"에 대한 검색 grep -n cat example.txt, 당신이 얻을 거라고 example.txt:2: Hello cat하고 example.txt:3: cats are cool.
jvriesem

11

이것은 오래된 질문이며 대답은되었지만 사용하려는 사람을 위해 --binary-files = text 옵션을 여기에 넣을 것이라고 생각했습니다. -I 옵션은 이진 파일을 무시하지만 grep이 이진 파일을 텍스트 파일로 취급하도록하려면 --binary-files = text를 다음과 같이 사용하십시오.

bash$ grep -i reset mediaLog*
Binary file mediaLog_dc1.txt matches
bash$ grep --binary-files=text -i reset mediaLog*
mediaLog_dc1.txt:2016-06-29 15:46:02,470 - Media [uploadChunk  ,315] - ERROR - ('Connection aborted.', error(104, 'Connection reset by peer'))
mediaLog_dc1.txt:ConnectionError: ('Connection aborted.', error(104, 'Connection reset by peer'))
bash$
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.