2017-01-06 19 views
0

我有改變染色體的名字下面的sed命令:如何輸出中SED/samtools導致進入新目錄

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 

我quesion是如何結果插入一條新路,同時保持變量$文件名作爲每個新文件名的一部分?它總是在/ mynewpath /中插入結果到/ myoldpath /或在「my.path.bam」中輸出。 我錯過了該部分的語法$file > /mynewpath/${filename}_chr.bam

任何幫助,將不勝感激

回答

0

試圖改變名= $回聲文件|切「-d」。 -f 1;filename = $(echo $ file | rev | cut -d「/」-f 1 | rev | cut -d「。」-f1);

+0

謝謝@lurii的迴應。我試過這個,但是我得到了一個「_chr_bam」形式的輸出。這裏是我的嘗試:'在/myoldpath/*.bam文件; do filename = $(echo $ file | cut -d「。」-f 1); samtools視圖-H $文件| sed -e's/SN:([0-9XY])/ SN:chr \ 1 /'-e's/SN:MT/SN:chrM /'| samtools reheader - $ file> /mynewpath/${filename}_chr.bam;完成' –

+0

如果將命令更改爲/mynewpath/${file}_chr.bam,那麼文件名是什麼樣子? –

+0

你可以試試這個文件名= $(echo $ file | rev | cut -d「/」-f 1 | rev | cut -d「。」-f1); –