我有大约 200 个文件,其命名格式如下:
paired_dat_11_R1.fq
paired_dat_12_R2.fq
paired_dat_121_R1.fq
paired_dat_122_R2.fq
paired_dat_851_R1.fq
paired_dat_852_R2.fq
我只是想将 重命名2
为1
,同时保持R1
和R2
值不变:
paired_dat_11_R1.fq
paired_dat_11_R2.fq
paired_dat_121_R1.fq
paired_dat_121_R2.fq
paired_dat_851_R1.fq
paired_dat_851_R2.fq
答案1
您可以按如下方式使用mmv
(使用 安装sudo apt install mmv
):
mmv -n 'paired_dat_*2_R2*' 'paired_dat_#1\1_R2#2'
-n
以便您可以预览更改而不将其应用到您的文件。如果您对输出满意,请运行不带 的命令-n
。
工作原理
mmv
由文件名匹配部分('paired_dat_*2_R2*'
此处)和替换部分('paired_dat_#1\1_R2#2'
此处)组成。
在第一部分中,我们使用通配符来匹配文件名的各个部分,从而可以使用这些匹配来重命名文件。
上面的命令中*
使用了通配符,表示“匹配任意字符”。第一个命令匹配和*
之间的字符,而第二个命令匹配到 文件名末尾的字符。paired_dat_
2_R2
*
2_R2
然后,每个匹配项都可以在替换部分中使用,#
后跟与匹配项对应的升序数字。因此,#1
对应于第一个匹配项*
和#2
第二个匹配项*
。由于第一个*
匹配项最多为2
不包括它,因此#1
在替换部分中使用本质上会将其删除。然后,我们添加1_R2
(1
应该被转义,因此我们使用\1
),然后我们将文件名的其余部分添加为#2
。
您可以在终端中运行以查看更多详细信息man mmv
。
还有一个使用 Nautilus 的 GUI 选项,类似于阿图尔·梅尼尔德建议他的回答:
打开 Nautilus。
导航到包含您的文件的目录。
选择您的文件。
right-click并选择改名或按F2。
在弹出的窗口中选择查找和替换文本。
在里面现有文本字段输入:
2_R2
在里面用。。。来代替字段输入:
1_R2
单击Replace后您的文件将被重命名!
与往常一样,首先在文件的复制部分上进行测试,以确保其按预期工作。
答案2
安装Perlrename
命令,如果它尚不存在(默认情况下它不在我的系统上):
sudo apt install rename
运行此命令来执行您描述的更改:
rename 's/2_R2/1_R2/' paired_dat*.fq
语法相当于sed
命令。
另请参阅此主题在 Unix 和 Linux 上。
答案3
您可以使用克鲁萨德的 MultiRename。它接受????
单个字符,并且像上面的答案一样,您可以在应用它们之前查看结果。它本质上只是一个 GUI krename
。