我正在尝试使用 for 循环从包含可能字符串列表的文件中提取包含字符串的文件的所有行。我还想将 grep 的结果导出到文件名中包含变量的新文件。
这是我所拥有的:
file="variables.txt"
listofvariables=$(cat ${file})
for variable in ${listofvariables}
do
samtools view sample.bam | \
grep "'${variable}'" \
> sample.${variable}.bam
done
这段代码所做的只是为每个变量创建一个空白文件。为什么 grep 不提取包含该变量的行并将其放入这些文件中?
作为参考,variables.txt
文件如下所示:
mmu-let-7g-5p
mmu-let-7g-3p
mmu-let-7i-5p
mmu-let-7i-3p
mmu-miR-1a-1-5p
mmu-miR-1a-3p
mmu-miR-15b-5p
mmu-miR-15b-3p
mmu-miR-23b-5p
mmu-miR-23b-3p
这是samtools view
输出的样子:
7238520-1_CATAAT.mmu-miR-125b-5p 0 chr1 11301523 60 75M * 0 0CAGGTGTTTTCTCAGGCATTTGGATTTCTATAGAATCATAGTATTAAAATTTCAAAGTAATAACATTGCTTTTTA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:75 YT:Z:UU NH:i:1
1422982-2_CCCCGC.mmu-miR-132-3p 0 chr1 11301726 60 97M * 0 0 AAGTCTGTTTTTATGTGAGTGTTCCTGTGAAACTGAGGTCTGATGACTCTTCCTTAAGCAATTACAACTTCATTAGCATACATAAGGTTCAATTAAA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:97 YT:Z:UU NH:i:1
5675450-1_CCCCGC.mmu-miR-132-3p 0 chr1 11301726 60 97M * 0 0 AAGTCTGTTTTTATGTGAGTGTTCGTGTGAAACTGAGGTCTGATGACTCTTCCTTAAGCAATTACAACTTC^C
对于那些可能不熟悉的人,samtools view
只需读出.bam
文件即可。你可以把它想象成cat
.
提前致谢!