首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重命名文件的一部分

如何重命名文件的一部分
EN

Stack Overflow用户
提问于 2020-02-20 14:15:16
回答 1查看 41关注 0票数 1

我要重命名文件名的一部分,因为这个结构是在getfile中硬编码的。

我有包含ltQCs、sQCs和示例的代谢组学mzML文件,但是文件名有不同的长度( 6 ,6,7).I试图运行XCMS,但它只选择ltQCs和sQCs,因为该结构被硬编码为6。如何更改文件名的结构请参见下面的示例:

2020-02-02_B1W1_RP_NEG_P7_A20_001.mzML (结构为7)到2020-02-02_B1W1_RP_NEG_P7A20_001.mzML (结构为6)

我强调了我想要改变的部分。如果这是不可能的,可能通过添加一个字母或数字来重命名ltQCs和sQCs可能更容易,因此我得到了7的结构,然后将getfile中的结构更改为7。

希望有人能帮忙,谢谢:)

最好的

EN

回答 1

Stack Overflow用户

发布于 2020-02-20 14:22:59

可以使用gsub使用正则表达式更改文件名,该表达式删除倒数第二个下划线。

代码语言:javascript
复制
my_regex <- "(_)([[:alnum:]]{3}_[[:alnum:]]{3}[.]mzML)"
my_filename <- "2020-02-02_B1W1_RP_NEG_P7_A20_001.mzML"
gsub(my_regex, "\\2", my_filename)
#> [1] "2020-02-02_B1W1_RP_NEG_P7A20_001.mzML"

所以你可以做这样的事

代码语言:javascript
复制
rename_mzMLs <- function(directory)
{
  filenames <- list.files(directory, pattern = ".mzML")
  my_regex <- "(_)([[:alnum:]]{3}_[[:alnum:]]{3}[.]mzML)"
  new_filenames <- gsub(my_regex, "\\2", filenames)
  file.rename(filenames, new_filenames)
}

并通过做

代码语言:javascript
复制
rename_mzMLs("C:/path/to/mzML/files/")

显然,我无法测试这一点,因为我没有任何mzML文件,所以请确保在运行此函数之前备份您的文件!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60321950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档