我的文件夹中有数百个文件,其名称如下:
010203.txt
我想重新排列文件名,以便最后两位数字移动到前面,如下所示:
030102.txt
我想避免编写脚本。
相反,我正在寻找一个可以递归评估文件夹(及其子文件夹)中的所有文件的“linux gui 正则表达式文件重命名器”。
我希望能够指定一个正则表达式来匹配文件:
(\d\d)(\d\d)(\d\d)(.*)
我希望能够执行正则表达式替换来重命名文件:
$3$1$2$4
有什么建议吗?
答案1
我知道这不完全是“GUI”,但你什么也没说为什么这是一项要求,并且已写好执行此操作的命令行工具;例如perl-rename
:
find ~/dir -type f -exec prename -n 's/^(\d\d)(\d\d)(\d\d)(.*)$/$3$1$2$4/' {} +
(-n
打开“测试”模式。当您对输出满意时,请再次运行,-v
或者不使用选项。)
答案2
答案3
XFCE图纳尔文件管理器具有很好的批量重命名功能。
只需选择多个文件并点击F2
即可显示“重命名多个文件”对话框。从下拉菜单中选择Search & Replace
选项、勾选[x] Regular Expression
复选框、类型Search
和Replace
条件。
例如,我从 DVB-T 抓取器中获取了几个文件,名为
20190813 Okno do New Yorku.avi
20190814 Okno do Rima.avi
20190815 Okno do Bankoku.avi
20190820 Okno do Hamburgu.avi
使用搜索([0-9]+) (.*)
和替换DOC \2 \1
转换创建
DOC Okno do New Yorku 20190813.avi
DOC Okno do Rima 20190814.avi
DOC Okno do Bankoku 20190815.avi
DOC Okno do Hamburgu 20190820.avi
这非常酷。
批量重命名器还具有实时预览功能,因此您可以在源文件名旁边看到匹配的行及其转换,这对于调试正则表达式非常有用。不匹配的文件名不会更改。
答案4
我很感谢这些建议,但我找到了一种更简单的方法,即使用图形用户界面。
在 Ubuntu 中,安装 thunar:
sudo apt-get install thunar
然后您要做的就是导航到一个文件夹(使用 thunar)并按 ctrl-a 选择该文件夹中的所有文件。
之后,右键单击其中一个文件(已突出显示),然后从上下文菜单中选择“重命名”。然后,此对话框弹出,允许您执行正则表达式替换来重命名。
这不符合我提到的递归要求,但对于更改单个文件夹内所有文件的名称,它比命令行简单得多,但实际上,我确实很欣赏这两种方法。