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
これは通常の動作ではなく、私のubuntuまたはcentosシステムで問題を再現することはできません。
GREP_OPTIONS
bashrc(またはbash_profile、profileなど)が* .datを無視するように設定されている可能性が高いです。
これを確認するには、環境変数を印刷します。
echo $GREP_OPTIONS
出力のどこかに表示する必要があります。-exclude=*.dat
編集:Foxがコメントで提案したようにエイリアスである可能性があり、出力のどこかにcommand -v grep
表示する必要があります。-exclude=*.dat