我是 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
标志,因为我仍然得到结果中的所有目录。
你能分享一些光吗?