![查找+正则表达式:查找具有多个扩展名的文件名,但缺少基本文件名.jpg](https://linux22.com/image/155669/%E6%9F%A5%E6%89%BE%2B%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%EF%BC%9A%E6%9F%A5%E6%89%BE%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E6%89%A9%E5%B1%95%E5%90%8D%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%EF%BC%8C%E4%BD%86%E7%BC%BA%E5%B0%91%E5%9F%BA%E6%9C%AC%E6%96%87%E4%BB%B6%E5%90%8D.jpg.png)
我是 regex & SE Unix 和 Linux 新手,所以我希望我做的一切都是正确的。
我正在寻找文件名中包含名称并且可能具有不同扩展名的文件。我的初步试验基于这个答案(linux部分)以及我对find和正则表达式的基本了解,但成功有限。
我试过这个正则表达式:.*filename[^/].*\.(jpg|xcf|png|jpeg)
,里面find
是这样的find . -iregex '.*filename.*\.\(jpg\|gif\|png\|jpeg\)$'
。这个想法是排除目录名称中出现的“文件名”,因此是[^/]
正则表达式的“不带正斜杠”部分,但它排除了最基本的(也是必要的)格式,例如 filename.jpg
我也尝试过find . -type f -iregex '.*filename.*\.\(jpg\|gif\|png\|jpeg\)$'
,但我感觉使用正则表达式可能会绕过该-type
标志,因为我仍然得到结果中的所有目录。
你能分享一些光吗?