executa o loop para extrair parte de um nome de arquivo e executa alguns comandos

0

Eu sou novo no bash scripting. Eu tenho alguns arquivos em diretórios diferentes e queria extrair parte do nome do arquivo ou diretório e criar uma variável com essa parte e aplicar essa variável no outro comando. Meu diretório e nome de arquivo seguem esse padrão:

user/Sample_001_002_5/001_002_5_fgdfgh_hgf00.gz
user/Sample_254_128_3/254_128_3_wserer_hgf00.gz

Posso saber como posso configurar uma variável como i para eles?     i = 001_002_5     i = 254_128_3 Eu escrevi abaixo script mas eu não é reconhecido no meu comando:

dir=/users/Sample_*

for DIR in $dir

do i= basename ${DIR} | cut -c 8-

R="${DIR}/${i}*.gz"   # Run correctly#

echo $i               # run correctly#

echo $R               # run  correctly#

echo '@RG\tID:MCW\tSM:'${i}'\tPL:Illumina\tPU:'${i}"   ### in this command i is not recognized######

done
    
por elena 14.12.2016 / 18:58

1 resposta

0

Não sei se essa é a origem do problema, mas a aspa dupla no final da linha problemática não é correspondida.

(Além disso, o echo tem que tomar o argumento "-e" para assumir \ t como um caractere de tabulação e não literal, se é isso que você quer. Eu sei que isso não é algo sobre $ i).

    
por 14.12.2016 / 19:27