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.txtgrepが正しく機能することです。名前を変更すると、file.datgrepは何も見つかりません。

また、echoコマンドを使用して.datファイルを生成しましたが、
echo "grep this" > test.dat
まだgrep "grep" test.dat何も返されませんでした。
しかし、それ以降はmv test.dat test.dat.txtgrep "grep" test.dat.txtはうまくいきます。

十分簡単な解決策(ファイル名の変更)ですが変な動作だと思いました。

ベストアンサー1

これは通常の動作ではなく、私のubuntuまたはcentosシステムで問題を再現することはできません。

GREP_OPTIONSbashrc(またはbash_profile、profileなど)が* .datを無視するように設定されている可能性が高いです。

これを確認するには、環境変数を印刷します。

 echo $GREP_OPTIONS

出力のどこかに表示する必要があります。-exclude=*.dat

編集:Foxがコメントで提案したようにエイリアスである可能性があり、出力のどこかにcommand -v grep表示する必要があります。-exclude=*.dat

おすすめ記事