0

我有以下更改染色体名称的 sed 命令:

for file in /myoldpath/*.bam; do filename=`echo $file | cut -d "." -f 1`; samtools view -H $file | sed -e 's/SN:\([0-9XY]\)/SN:chr\1/' -e 's/SN:MT/SN:chrM/' | samtools reheader - $file > /mynewpath/${filename}_chr.bam; done  

我的问题是如何将结果插入新路径,同时将变量 $filename 作为每个新文件名的一部分?它总是将结果插入 /myoldpath/ 或 /mynewpath/ 中的字面意思“filename.chr.bam”。我在该部分的语法中遗漏了什么$file > /mynewpath/${filename}_chr.bam吗?

任何帮助,将不胜感激

4

1 回答 1

0

尝试更改filename=echo $file | 剪切-d“。” -f 1; to filename=$(echo $file| rev| cut -d "/" -f 1|rev|cut -d "." -f1 );

于 2017-01-06T09:09:40.543 回答