我有多个这样的文件:
round3-bcF_01_bcR_01.R1.fastq
round3-bcF_01_bcR_01.R2.fastq
round4-bcF_01_bcR_01.R1.fastq
round4-bcF_01_bcR_01.R2.fastq
round3-bcF_01_bcR_02.R1.fastq
round3-bcF_01_bcR_02.R2.fastq
round4-bcF_01_bcR_02.R1.fastq
round4-bcF_01_bcR_02.R2.fastq
一直持续到这种形式:
round3-bcF_12_bcR_08.R1.fastq
round3-bcF_12_bcR_08.R2.fastq
另外,我有不同的文件夹,例如:
bcF_01_bcR_01
bcF_01_bcR_02
bcF_01_bcR_03
等等...直到
bcF_12_bcR_08
我正在用这一行移动文件:
mv *-bcF_01_bcR_01* bcF_01_bcR_01
因此,每个文件夹中应该保留 4 个文件,但这让我永远无法忍受,因为我必须运行 96 次代码(我有更多的副本,所以我有超过 96 个文件夹)。
我只想将这部分名称为“bcF_01_bcR_01”的文件移动到同名文件夹中。我是 bash 新手,因此感谢您的帮助。谢谢
在这种特殊情况下,可能最简单的方法是以如下方式使用内置
for
循环:echo
命令以进行实际的文件系统更改。使用重命名移动文件:
当您准备好移动文件时删除 -n。
mmv
(来自同名包)对于这样的情况很有用:在这里,
#2
指的是表达式中的第二个通配符匹配*-bcF_01_bcR_*.*
- 您可以轻松地将其扩展为一次进行多次替换,例如删除
-n
以实际进行动作。如果你使用zsh
它,它有一个可加载的等价物zmv
。