同时重命名具有不同名称的多个文件

时间:2017-02-06 14:25:14

标签: linux rename filenames

我有大约150个具有相同.txt扩展名的文件,但文件名只是字母数字字符串(例如7J9E45600.txt,FF5632088.txt等)。我有一个列表,其中字母数字字符串与更有意义的名称匹配。我想用有意义的名称替换这些字母数字字符串,但是想以编程方式进行。大多数现有解决方案允许以递增的数字重命名多个文件,例如,通过循环命令,但在我的情况下,所有文件名将是不同的。我想要做的一个例子如下:将7J9E45600.txt重命名为adipose.txt,将FF5632088.txt重命名为brain.txt等。最受欢迎的是使用Linux,R,Perl或Python的解决方案。

1 个答案:

答案 0 :(得分:0)

是的,这很容易通过R中的for循环来完成。

使用一列旧名称和包含新名称的匹配列来进行数据的读取或读取。我复制了一个包含四个文件的示例。

oldnames <-c(“ / Users / foo / Documents / pictures / Test / 2020-04-21 19.59.jpg”, “ / Users / foo / Documents / pictures / Test / 2020-04-21 19.59.35.jpg”, “ / Users / foo / Documents / pictures / Test / 2020-04-21 19.58.37.jpg”, “ / Users / foo / Documents / pictures / Test / 2020-04-21 17.21.06.jpg”)

newnames <-c(“ / Users / foo / Documents / pictures / Test / 2021-04-21 19.59.59.jpg”, “ / Users / foo / Documents / pictures / Test / 2021-04-21 19.59.35.jpg”, “ / Users / foo / Documents / pictures / Test / 2021-04-21 19.58.37.jpg”, “ / Users / foo / Documents / pictures / Test / 2021-04-21 17.21.06.jpg”)

testnames_df <-data.frame(cbind(oldnames,newnames))

对于(1:4中的i){file.rename(from = testnames_df $ oldnames [i],至= testnames_df $ newnames [i])}