検索ツールが0件と返すと、たいてい「それは存在しない」と受け取られます。実際に言っているのは1つだけです。今回見た範囲では、この書き方では見つからなかった。黙って0件になる3つのケース① ツールが一部のファイルを飛ばしている。バージョン管理の検索は、バイナリと判定したファイルを標準で飛ばします。その判定は、先頭の数バイトだけで決まることもあります。データの行を積み重ねたログファイルはバイナリと判定されやすく、丸ごと飛ばされても何も知らされません。② 範囲が思っている範囲ではない。除外ルール、パスの指定、デフォルトの深さ制限。どれか1つでも、検索を半分しか走らせないことがあります。③ 探している書き方が、中身の書き方と違う。漢字のファイル名はリンクの中ではパーセントエンコードされていますし、識別子は設定ファイルの中で引用符やエスケープが付いていることがあります。文字列検索が探すのは、あくまで文字列です。私たちが犯しかけたミスそのときの0件は、「誰もこのファイルを参照していないから削除していい」という根拠にされかけていました。実際にはあるログファイルが参照していて、それがバイナリとして飛ばされていただけでした。0件を信じてそのまま進めていたら、まだ使われているものを消していたはずです。しかも、誰かが気づくのはずっと後になってからでしょう。ルール0件は結論ではなく、「別の方法で確かめる必要がある」という合図として扱う。ないことを証明したいなら、原理の違う2つの方法が、どちらも「ない」と言う必要があります。1つは文字列で探す方法、もう1つは構造で探す方法です。たとえば、勝手に判定をするその仕組みを通さず、ファイルの中身をそのまま出力してから絞り込む、といったやり方です。⚠️ あることの証明には証拠が1つあれば足ります。ないことの証明に必要なのは、網羅です。