有没有办法可以将 grep 命令与一系列其他命令结合使用来查找字符序列(即 fasta 文件中的“GAATTC”)并计算每次匹配之间有多少个字符?
答案1
输入文件
cat file
GAATTCXXXGAATTC
带外壳(GNU grep
):
grep -oP 'GAATTC\K.*(?=GAATTC)' file | tr -d $'\n' | wc -c
3
正则表达式匹配如下:
节点 | 解释 |
---|---|
GAATTC |
'GAATTC' |
\K |
重置比赛的开始(什么是K ept)作为使用后视断言的更短替代方案:环顾四周和正则表达式中对 \K 的支持 |
.* |
除 \n 之外的任何字符(0 次或多次(匹配尽可能多的数量)) |
(?= |
展望看看是否有: |
GAATTC |
'GAATTC' |
) |
前瞻结束 |
和awk:
awk -F'GAATTC' '{print length($2)}' file
3
和珀尔:
perl -nE 'say length $1 if /GAATTC(.*)GAATTC/' file
3