Tje*_*ard 3 files batch-rename
我有一个来自 Windows 电脑的旧备份,但大多数文件末尾都有时间戳。所有文件都需要保留其原始名称,但没有时间戳。
如何(2019_04_12 11_03_06 UTC)从多个文件夹中的所有文件中删除特定部分。
示例文件:
messages (2019_04_12 11_03_06 UTC).properties
maintenancemode (2019_04_12 11_03_06 UTC).jar
Run Code Online (Sandbox Code Playgroud)
据我所知所有文件都有相同的时间戳
perlrename命令很强大。它可以查找字符串模式并替换它们。如果您的文件具有类似的时间戳,则可以使用以下方法:
rename -n 's/\(2019.*?\)//' *
Run Code Online (Sandbox Code Playgroud)
这将删除所有看起来像 的字符串(2019...)。因此,如果某些文件具有不同的时间戳也没关系。
?通过附加.*(感谢 Steeldriver)使匹配变得非贪婪。因此,表达式将仅匹配第一次出现 之前的字符),而不是字符串中稍后可能出现的其他字符。
该-n选项使命令仅显示将要执行的操作。重命名未有效完成。这允许您首先仔细检查输出,如果它显示该命令将执行您想要的操作,则重新运行它,而不选择-n实际继续重命名。
默认情况下可能未安装该工具。您可以使用以下命令安装它:
sudo apt install rename
Run Code Online (Sandbox Code Playgroud)