
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