ワイルドカードは「検索」で動作しますか?

ワイルドカードは「検索」で動作しますか?

私は次のUbuntu 11.04を使用しています。

$ locate --version
mlocate 0.23.1 [...]

ページman locateの内容は次のとおりです。

--regexを指定しないと、PATTERNにワイルドカード文字が含まれる可能性があります。 PATTERNにワイルドカードが含まれていない場合、検索はパターンが* PATTERN *のように動作します。

さて、簡単なテストをしましょう。まず、「lua」を検索してみてください。これにより、多くの結果(500以上)が返されます。

$ locate 'lua' | head -5
/boot/grub/hwmatch.lua
/etc/alternatives/lua-compiler
/etc/alternatives/lua-compiler-manual
/etc/alternatives/lua-interpreter
/etc/alternatives/lua-manual

$ locate 'lua' | wc -l
560

filenameに.so含まれているファイルを検索したいので、luaワイルドカードパターンを試してみました。

$ locate 'lua*so*'

いいえ、結果は0です。だから正規表現を使ってみました。

$ locate --regex 'lua.*so.*' | head -5
/usr/lib/libipelua.so.7.0.10
/usr/lib/liblua5.1.so
/usr/lib/liblua5.1.so.0
/usr/lib/liblua5.1.so.0.0.0
/usr/lib/gtk-2.0/2.10.0/engines/libluaengine.so

まあ、それは効果があります。だから十分です。

しかし、私を混乱させることは、マンページに正規表現を使用せずにワイルドカードがサポートされていることを示している場合、ワイルドカードパターンを機能させるにはどのようにフォーマットする必要がありますか?

ベストアンサー1

名前がで始まる場合にのみglobが一致しますlua。グローバルに試してみてください。

locate '*lua*so*'

おすすめ記事