我有一些圖像命名與像這樣生成: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