Ao atribuir à variável filename
, você pode usar o utilitário basename
da seguinte forma:
filename="$( basename "$file" .bam )"
Isso dará filename
o valor myfile
if $file
, por exemplo, /my/data/myfile.bam
(ou seja, removerá qualquer elemento do caminho, bem como o sufixo especificado).
Você pode até usar
filename="/mynewpath/$( basename "$file" .bam )_chr.bam"
ou
filename="$( printf '/mynewpath/%s_chr.bam' "$( basename "$file" .bam )" )"
Com os dois últimos exemplos, você usaria mais tarde "$filename"
em vez de "/mynewpath/${filename}_chr.bam"
para o redirecionamento.
Quanto ao sed
:
sed -e 's/SN:([0-9XY])/SN:chr/' -e 's/SN:MT/SN:chrM/'
Isso inserirá a string chr
em SN:X
onde X
é um nome de cromossomo, transformando-o em SN:chrX
. No entanto, você precisará usar \( ... \)
em vez de ( ... )
para o grupo de captura ou adicionar a opção -E
à invocação de sed
, ou você receberá um erro dizendo "referência inválida \ 1 em" s 'comando's RHS "(com GNU sed
) ou" \ 1 não definido no RE "(com BSD sed
).