我有一些图像命名与像这样生成:a.jpg a_3558.jpg a_3560.jpg a_3561.jpg,现在我想找出a.jpg,只是它,并将其移动到另一个文件夹,如何编写命令。如何使用正则表达式与find命令来搜索文件?
0
A
回答
1
试试以下find
命令,该命令在要存储要移动的文件的目录中使用sed
正则表达式。
find . -regextype sed -regex ".*/[a-zA-Z0-9]\+\.jpg" -exec mv "{}" /path/to/destination \;
OR
find . -regextype sed -regex ".*/[^._]\+\.jpg" -exec mv "{}" /path/to/destination \;
更新:
mv $(find . -name "*.jpg" -type f | grep -P '^(?!.*_\d+\.jpg).*') /path/to/destination
1
只有当你不知道在哪里a.jpg
是,只有当你知道只有一个a.jpg
find . -type f -name "a.jpg" -exec mv "{}" /anotherfolder \;
0
要使用正则表达式做到这一点,你会做这样的事情:
find /basefoldertosearch -regex '.*/a\.jpg' -exec mv "{}" /anotherfolder \;
注:该模式的整个路径,而不仅仅是文件名匹配。第一个点在它之前没有“\”,将匹配任何东西(并且由于星号的原因,任何数目的)。 “。”在文件名中,因为它之前有一个“\”,所以会匹配一个点。所以,这个模式将匹配以“/a.jpg”结尾的任何路径+文件名。由于这包括'*',它必须被引用。
此外,由于您知道确切的文件名,您可以搜索特定的文件名。
find /basefoldertosearch -name a.jpg -exec mv "{}" /anotherfolder \;
请注意,这不包括路径。这也不是一个正则表达式;它会搜索与指定的文件名完全相同的文件名。在这种情况下,由于它没有''(而''实际上不起作用),所以不需要引用它。
请注意,如果其中任何一个找到多个匹配项,它会将它们全部逐一复制到相同的目的地;每个将覆盖前一个,并且您将留下它找到的最后一个文件。
补充:阅读下面的意见后,或许这就是你正在寻找:
find /basefoldertosearch ! -regex '.*[0-9].*' -type f -exec mv "{}" /anotherfolder \;
这会发现一切不(因为!
)的匹配正则表达式:任何字符.*
,其次由数字[0-9]
后跟其他任何字符.*
。然后从列表中删除任何不是正常文件(例如导演)(否则您将移动/basefoldertosearch
,并且找不到任何剩余的东西!)
相关问题
- 1. Vim使用最后搜索正则表达式的:s命令
- 2. 使用两个正则表达式来搜索一个文件
- 3. 在bash中使用find命令的正则表达式
- 4. 使用正则表达式使用.find
- 5. 如何使用正则表达式与Vim ag(银色搜索)
- 6. “* .txt”正则表达式如何与ls命令一起使用?
- 7. 如何使用正则表达式与mvn测试命令
- 8. 正则表达式来验证文件搜索模式
- 9. 使用正则表达式搜索C++
- 10. 使用正则表达式搜索Twitter
- 11. 使用正则表达式grep搜索
- 12. 壳使用正则表达式命令
- 13. 搜索与正则表达式
- 14. 如何使用正则表达式模式使用find exec cp?
- 15. 正则表达式在Unix中位数find命令
- 16. golang EXEC find命令的正则表达式
- 17. 正则表达式在使用Java的文件中搜索
- 18. 使用正则表达式搜索HTML文件
- 19. python搜索文件和使用正则表达式解析
- 20. 正则表达式搜索和使用VBScript替换JSON文件
- 21. C Sharp使用正则表达式搜索文件夹
- 22. 搜索条件的正则表达式
- 23. 如何使用正则表达式排除字符来搜索文本?
- 24. 如何搜索正则表达式的txt文件?
- 25. 如何使用正则表达式来格式化json文件
- 26. 正则表达式:简单的搜索正则表达式?
- 27. 使用正则表达式来与MySQL
- 28. 正则表达式来提取搜索词搜索词
- 29. find命令+搜索direcories
- 30. 使用正则表达式来评估搜索查询
好吧,我没描述得很好。有很多文件,如b.jpg b_258.jpg b_6693.jpg,789c.jpg 789c_77885.jpg 789c_14.jpg,什么意思是只找到a.jpg b.jpg,789c.jpg ...没有任何“ {NO。}“,并将它们移动 – Tomo 2014-10-30 03:45:34
添加到问题中。 – 2014-10-30 03:46:12
@Tomo试试我的更新。 – 2014-10-30 03:53:27