![名前に拡張子がないが、プロパティに拡張子があるファイルを識別する方法。例: nav.example.file は実際にはテキスト ドキュメントです](https://rvso.com/image/111986/%E5%90%8D%E5%89%8D%E3%81%AB%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%81%8C%E3%81%AA%E3%81%84%E3%81%8C%E3%80%81%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3%E3%81%AB%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%81%8C%E3%81%82%E3%82%8B%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E8%AD%98%E5%88%A5%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%82%E4%BE%8B%3A%20nav.example.file%20%E3%81%AF%E5%AE%9F%E9%9A%9B%E3%81%AB%E3%81%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%20%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%A7%E3%81%99%20.png)
find -maxdepth 1 ! -name "*.*" -print
これは、XML文書であるINSSO.TEST.20100503.16400006のようなファイル名を識別しません。
答え1
ファイルの名前ではなく、その内容に基づいてファイルを検索する場合は、ファイルの中を調べる必要があります。 探す単独では実行されませんが、別のプログラムを実行するように指示することができます。
まず最初にファイル(1)はファイルの説明を出力します。XMLファイルで役立つ場合は、ファイル名を出力するスクリプトを作成します。探す正しいタイプであることがわかります。次に、すべての適切なファイルに対してそのスクリプトを呼び出します。
find . -type f -exec my-xml-detector {} \;
答え2
現在のディレクトリ内で拡張子がないファイル、拡張子が 3 文字を超えるファイル、または拡張子が空のファイルを検索する場合は、次のようにします。
find . ! -name . -prune ! -name '?*.[!.]' \
! -name '?*.[!.][!.]' \
! -name '?*.[!.][!.][!.]'
(ファイル名に有効な文字を形成しないバイトシーケンスが含まれていないことを前提としています)。