【问题标题】:How to batch rename file names by delete content between certain characters Linux如何通过删除某些字符之间的内容来批量重命名文件名 Linux
【发布时间】:2020-03-13 12:57:05
【问题描述】:

我有很多这样命名的文件:

BH_Undetermined_S0_L001_R1_001.fastq.gz__1.fq.gz
BH_Undetermined_S0_L001_R1_001.fastq.gz__merged.fq.gz
BH_Undetermined_S0_L001_R2_001.fastq.gz__2.fq.gz
BHos1_S1_L001_R1_001.fastq.gz__1.fq.gz
BHos1_S1_L001_R1_001.fastq.gz__merged.fq.gz
BHos1_S1_L001_R2_001.fastq.gz__2.fq.gz
BHos2_S2_L001_R1_001.fastq.gz__1.fq.gz
BHos2_S2_L001_R1_001.fastq.gz__merged.fq.gz
BHos2_S2_L001_R2_001.fastq.gz__2.fq.gz
ChLJ1511Da_HNVMLBCXX_L2_1.fq.gz__1.fq.gz
ChLJ1511Da_HNVMLBCXX_L2_1.fq.gz__merged.fq.gz
ChLJ1511Da_HNVMLBCXX_L2_2.fq.gz__2.fq.gz
ChLJ1511Db_HNVMLBCXX_L2_1.fq.gz__1.fq.gz
ChLJ1511Db_HNVMLBCXX_L2_1.fq.gz__merged.fq.gz
ChLJ1511Db_HNVMLBCXX_L2_2.fq.gz__2.fq.gz
ML-3_H7VFTALXX_L2_1.fq.gz__1.fq.gz
ML-3_H7VFTALXX_L2_1.fq.gz__merged.fq.gz
ML-3_H7VFTALXX_L2_2.fq.gz__2.fq.gz
T2S170523_H23HKDMXX_L1_1.fq.gz__1.fq.gz
T2S170523_H23HKDMXX_L1_1.fq.gz__merged.fq.gz
T2S170523_H23HKDMXX_L1_2.fq.gz__2.fq.gz
T4S170523_H23HKDMXX_L1_1.fq.gz__1.fq.gz

我想通过删除第一个'_'和'__'之间的内容来批量重命名它们。所以他们会是这样的:

BH_1.fq.gz
BH_merged.fq.gz
BH_2.fq.gz
BHos1_1.fq.gz
BHos1_merged.fq.gz
BHos1_2.fq.gz
BHos2_1.fq.gz
BHos2_merged.fq.gz
BHos2_2.fq.gz
ChLJ1511Da_1.fq.gz
ChLJ1511Da_merged.fq.gz
ChLJ1511Da_2.fq.gz
ChLJ1511Db_1.fq.gz
ChLJ1511Db_merged.fq.gz
ChLJ1511Db_2.fq.gz
ML-3_H7VFTALXX_1.fq.gz
ML-3_H7VFTALXX_merged.fq.gz
ML-3_H7VFTALXX_2.fq.gz
T2S170523_1.fq.gz
T2S170523_merged.fq.gz
T2S170523_2.fq.gz
T4S170523_1.fq.gz

如何制作? 非常感谢!

【问题讨论】:

  • 您需要提供更多信息,说明您做了哪些尝试,以及您所在的 Unix/Linux 系统类型,以及您是否允许使用非 shell 内置函数,这是一个正确的问题。跨度>
  • 我使用的是 linux ubuntu。我只想批量重命名这些文件。我试过renamemv,但是失败了。
  • 发布那些失败的尝试没有问题。您是使用默认 shell 中的 rename 还是 perl 中的 rename
  • 我正在使用默认 shell 中的 rename。我不知道如何在 perl 中启动 rename

标签: linux shell rename


【解决方案1】:

您可以使用基于 Perl 的重命名(在 Mint/19 上可用的文件重命名)。某些系统附带其他版本的重命名 (rename.ul),请确保您选择了正确的版本。

file-rename 's/_.*__//' BH_Undetermined_S0_L001_R1_001.fastq.gz__1.fq.gz
BH_Undetermined_S0_L001_R1_001.fastq.gz__merged.fq.gz
BH_Undetermined_S0_L001_R2_001.fastq.gz__2.fq.gz ...

您可以在不执行重命名操作的情况下验证它(-v:详细,-n:无操作)

file-rename -n -v 's/_.*__//' BH_Undetermined_S0_L001_R1_001.fastq.gz__1.fq.gz ...

【讨论】:

  • 对不起,请您详细解释一下吗?如何在 Linux 中运行 perl 脚本?谢谢
猜你喜欢
  • 2019-07-29
  • 1970-01-01
  • 2016-03-02
  • 2014-11-13
  • 2011-01-25
  • 2019-06-25
  • 2017-02-21
  • 2013-12-09
  • 1970-01-01
相关资源
最近更新 更多