我有一个包含多个文件的目录,它们都以"_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结尾的文件,保留文件名的前10个字符(ERR32.)并创建一个目录
因此,这些目录将类似于ERR3258060 ERR3258861
到目前为止,我已经使用bash尝试了以下操作
for f in *_1.fastq.gz
do
echo $f | rename -n 's/_1.fastq.gz//' * | mkdir
done命令按照我想要的方式生成文件名,但是mkdir不会接受重命名的输出,它只会说“缺少操作数”,我如何才能让mkdir接受上一条命令的结果?
谢谢
发布于 2019-09-06 17:18:06
不需要使用rename。您可以只使用sed。在第一步中,创建目录名,然后在mkdir中使用它。
for f in *_1.fastq.gz
do
dir=$(echo $f | sed 's/_1.fastq.gz//')
mkdir $dir
donehttps://stackoverflow.com/questions/57818643
复制相似问题