grep은 .dat 확장자를 신경쓰나요?

grep은 .dat 확장자를 신경쓰나요?

GNU grep 2.6.3
Linux 버전 2.6.32-220.el6.i686(Red Hat 4.4.6-3)

grep이 작동하지 않는 .dat 파일이 있습니다. 이는 일반 텍스트이고 "less", "cat" 등과 같은 모든 표준 출력 명령으로 읽을 수 있으므로 내용이 무엇인지 알 수 있습니다.

거기에 있다는 것을 확실히 알고 있는 문구를 검색하면 아무 것도 찾지 못한 것처럼 반환되지 않습니다.

이상한 점은 단순히 이름을 와 같은 다른 확장자로 바꾸면 file.dat.txt이제 grep이 제대로 작동한다는 것입니다. 이름을 다시 으로 바꾸면 file.dat다시 한번 grep이 아무것도 찾지 못할 것입니다.

또한 echo 명령을 사용하여 .dat 파일을 만들었습니다.
echo "grep this" > test.dat
하지만 여전히 grep "grep" test.dat아무것도 반환되지 않았습니다.
하지만 이후에는 mv test.dat test.dat.txt이제 grep "grep" test.dat.txt잘 작동했습니다.

해결 방법은 충분히 쉬웠지만(파일 이름 바꾸기) 이것이 이상한 동작이라고 생각했습니다.

답변1

이는 정상적인 동작이 아니며 내 우분투나 Centos 시스템에서 문제를 재현할 수 없습니다.

GREP_OPTIONS*.dat를 무시하도록 bashrc(또는 bash_profile, 프로필 등)에 설정되었을 가능성이 높습니다 .

이를 확인하려면 간단히 env 변수를 인쇄하십시오.

 echo $GREP_OPTIONS

출력 어딘가에 표시되어야 합니다.-exclude=*.dat

편집: Fox가 의견에서 제안한 대로 별칭일 수도 있으며 출력 어딘가에 command -v grep표시되어야 합니다.-exclude=*.dat

관련 정보