使用重命名的输出使目录重命名文件

布料

我有一个包含多个文件的目录,它们都以“ _1.fastq.gz”或“ _2.fastq.gz”结尾

ERR3258060_1.fastq.gz  
ERR3258060_2.fastq.gz  
ERR3258861_1.fastq.gz  
ERR3258861_2.fastq.gz

我想要做的(第一步)是获取所有以_1.fastq.gz结尾的文件,并保留文件名(ERR32 .....)的前10个字符,并使用该文件创建目录

因此目录看起来像ERR3258060 ERR3258861

到目前为止,我已经尝试使用以下bash

for f in *_1.fastq.gz
do
echo $f | rename -n 's/_1.fastq.gz//' * | mkdir
done

该命令以我想要的方式生成文件名,但是mkdir不会采用重命名的输出,它只会说“缺少操作数”,如何使mkdir接受上一个命令的结果?

谢谢

阿里恩霍德

无需使用rename您可以使用sed第一步,创建目录名称,然后在中使用它mkdir

for f in *_1.fastq.gz
do
    dir=$(echo $f | sed 's/_1.fastq.gz//')
    mkdir $dir
done

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章