从文件名中删除日期和时间

从文件名中删除日期和时间

我需要将 Linux 中的文件从 重命名date.time.filenamefilename

例子:

20170310.00.35.06.SamridhiSamridhi

答案1

filename如果格式一致,您可以使用精确表达式删除日期和时间,那么无论它包含什么字符,您都会保留该部分。

rename -n 's/^\d{8}\.\d{2}\.\d{2}\.\d{2}\.//' *

测试后删除-n以实际重命名文件。

笔记:

  • \d{8}正好 8 位数字
  • \.文字.

感谢 @terdon 指出,在重命名中我们可以使用\d来表示任何数字,而不是[0-9]

答案2

移动命令mv就是您所需要的 - 它会将文件移动到另一个目录和/或重命名它(在同一目录中)。

因此,在包含文件的目录中,输入:

mv -vi 20170310.00.35.06.Samridhi Samridhi

-v选项将显示它正在执行的操作,-i如果已存在同名文件,该选项将会发出警告,让您决定是否要覆盖它。

还有一个重命名命令,但如果您有很多文件需要按照某种模式更改其名称,这个命令会更有用。例如,文件名为 document.txt.001、document.txt.002、document.txt.003 ... document.txt.050 ;并且您希望文件名为 document-001.txt、document-002.txt 等等。

相关内容