Eu tenho uma lista de arquivos:
out_CCGCGGTT+CTAGCGCT_R1.fq.gz
out_TTATAACC+TCGATATC_R2.fq.gz
out_GGACTTGG+CGTCTGCG_R1.fq.gz
out_AAGTCCAA+TACTCATA_R2.fq.gz
...
os IDs do adaptador (entre os dois sublinhados, como AACGTTCC+AGTACTCC, AACGTTCC+AGTACTCC) correspondem à primeira coluna de ID.file.txt
head ID.file.txt:
CCGCGGTT+CTAGCGCT NHL_332_N
TTATAACC+TCGATATC NHL_333_T
GGACTTGG+CGTCTGCG NHL_334_T
AAGTCCAA+TACTCATA NHL_335_T
ATCCACTG+ACGCACCT NHL_336_N
GCTTGTCA+GTATGTTC NHL_337_N
CAAGCTAG+CGCTATGT NHL_338_N
TGGATCGA+TATCGCAC NHL_339_T
...
Quero renomear os arquivos e substituir os IDs do adaptador pelo ID real (segunda coluna do arquivo de ID) se eles corresponderem e também remover "out" desde o início.
Então, meus nomes finais de arquivos, exemplo:
NHL_332_N_R1.fq.gz
NHL_333_T_R2.fq.gz
NHL_334_T_R1.fq.gz
NHL_335_T_R2.fq.gz
existe alguma maneira de fazer isso no bash?
Usando um script Perl: