计算 grep 搜索之间的字符数

计算 grep 搜索之间的字符数

有没有办法可以将 grep 命令与一系列其他命令结合使用来查找字符序列(即 fasta 文件中的“GAATTC”)并计算每次匹配之间有多少个字符?

答案1

输入文件

cat file
GAATTCXXXGAATTC

带外壳(GNU grep):

grep -oP 'GAATTC\K.*(?=GAATTC)' file | tr -d $'\n' | wc -c
3

正则表达式匹配如下:

节点 解释
GAATTC 'GAATTC'
\K 重置比赛的开始(什么是Kept)作为使用后视断言的更短替代方案:环顾四周正则表达式中对 \K 的支持
.* 除 \n 之外的任何字符(0 次或多次(匹配尽可能多的数量))
(?= 展望看看是否有:
GAATTC 'GAATTC'
) 前瞻结束

:

awk -F'GAATTC' '{print length($2)}' file
3

:

perl -nE 'say length $1 if /GAATTC(.*)GAATTC/' file
3

相关内容