【发布时间】:2021-02-21 18:02:19
【问题描述】:
我有一个如下所示的字符串:
RG="@RG\tID:HS2000-1015_160.7\tDS:ADNI_1380^LP6005117-DNA_G04^ADNI_WGS\tLB:LP6005117-DNA_G04\tPL:illumina\tPU:HS2000-1015_160.7\tSM:ADNI_1380"
我想提取ID: 之后和\t 之前的所有内容
并因此得到HS2000-1015_160.7。如果可能的话,我想要一个单线。
我试过的代码:
echo ${RG} | grep -oP "(?<=ID:)[^"\t"]*"
这给了我HS2000-1015_160.7\
【问题讨论】:
-
为什么
grep...grep是过滤行,而不是提取部分文本。 -
grep -oP "(?<=ID:).*?(?=\\\t)"应该可以工作