我有一个文件列表:
out_CCGCGGTT+CTAGCGCT_R1.fq.gz
out_TTATAACC+TCGATATC_R2.fq.gz
out_GGACTTGG+CGTCTGCG_R1.fq.gz
out_AAGTCCAA+TACTCATA_R2.fq.gz
...
适配器 ID(两个下划线之间,如 AACGTTCC+AGTACTCC、AACGTTCC+AGTACTCC)与 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
...
我想重命名这些文件,并将适配器 ID 替换为真实 ID(ID 文件的第二列)(如果它们匹配),并从开头删除“out”。
所以我的最终文件名,例如:
NHL_332_N_R1.fq.gz
NHL_333_T_R2.fq.gz
NHL_334_T_R1.fq.gz
NHL_335_T_R2.fq.gz
有什么办法可以在bash中做到这一点吗?
使用 Perl 脚本:
与
zsh
:-n
如果满意,请删除(试运行)。