我有很多这样的文件:
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“这一部分的文件移动到同名文件夹中。我是新来的巴什,所以任何帮助都是非常感谢的。谢谢
发布于 2020-09-14 19:22:26
mmv (来自同名的包)对于以下情况很有用:
$ mmv -n '*-bcF_01_bcR_*.*' 'bcF_01_bcR_#2/'
round3-bcF_01_bcR_01.R1.fastq -> bcF_01_bcR_01/round3-bcF_01_bcR_01.R1.fastq
round3-bcF_01_bcR_01.R2.fastq -> bcF_01_bcR_01/round3-bcF_01_bcR_01.R2.fastq
round3-bcF_01_bcR_02.R1.fastq -> bcF_01_bcR_02/round3-bcF_01_bcR_02.R1.fastq
round3-bcF_01_bcR_02.R2.fastq -> bcF_01_bcR_02/round3-bcF_01_bcR_02.R2.fastq
round4-bcF_01_bcR_01.R1.fastq -> bcF_01_bcR_01/round4-bcF_01_bcR_01.R1.fastq
round4-bcF_01_bcR_01.R2.fastq -> bcF_01_bcR_01/round4-bcF_01_bcR_01.R2.fastq
round4-bcF_01_bcR_02.R1.fastq -> bcF_01_bcR_02/round4-bcF_01_bcR_02.R1.fastq
round4-bcF_01_bcR_02.R2.fastq -> bcF_01_bcR_02/round4-bcF_01_bcR_02.R2.fastq在这里,#2引用了表达式*-bcF_01_bcR_*.*中的第二个通配符匹配--您可以很容易地将它扩展为在一次尝试中执行多个替换。
mmv -n '*-bcF_*_bcR_*.*' 'bcF_#2_bcR_#3/'移除-n以实际进行移动。如果使用zsh,则它具有可加载的等效zmv。
https://askubuntu.com/questions/1275090
复制相似问题