提问人:Sergio Bolívar 提问时间:7/27/2023 最后编辑:CyrusSergio Bolívar 更新时间:7/27/2023 访问量:76
创建与文件名称相同的文件夹,并将这些文件移动到新文件夹中
Create folders with same names that files and move these files into the new folders
问:
我正在尝试创建与中央文件夹中的多个文件同名的文件夹,并将文件移动到具有相同基本名称的文件夹中。
├── din_UWBM.trimmed_1P.fastq.gz
├── din_UWBM.trimmed_2P.fastq.gz
├── par_UWBM.trimmed_1P.fastq.gz
├── par_UWBM.trimmed_2P.fastq.gz
结果将是这样的:
├── din_UWBM
│ ├── din_UWBM.trimmed_1P.fastq.gz
│ └── din_UWBM.trimmed_2P.fastq.gz
├── par_UWBM
│ ├── par_UWBM.trimmed_1P.fastq.gz
│ └── par_UWBM.trimmed_2P.fastq.gz
我试试这个脚本:
for file in *_1P.fastq.gz; do
dir=$(basename -s .trimmed_1P.fastq.gz $file)
read2=$(find . -name "*.trimmed_2P.fastq.gz");
mv $file $read2 $dir
done
但这只会移动_1P文件,而不是_2P(或移动到第一个文件夹)。
有人知道如何解决这个问题吗?我会手动完成,但更多的是 400 对文件!
我非常感谢您提供的任何帮助。
答:
1赞
tshiono
7/27/2023
#1
使用提供的文件名,以下代码将起作用:
for f in *.fastq.gz; do
d=${f%%.*} # remove everything after the leftmost dot
mkdir -p "$d" # -p option suppress error if the directory already exists
mv -- "$f" "$d"
done
评论
1赞
Sergio Bolívar
7/27/2023
非常感谢@tshiono的帮助!效果完美!
上一个:循环遍历,直到满足条件
下一个:在多分辨率文件上迭代运行软件
评论