我有一堆像这样的字符串,我想从一个包含许多其他字符串的文件中提取:
chr2:95183661-95183776
chr9:951d2483661-95182423776
我正在寻找一种方法来grep这个特定的模式,但中间的破折号会导致问题。以下是我尝试过的:
grep -w --color -o -E "chr[0-9]:[0-9]-[0-9]*"
我创建了一个测试文件,以便检查正则表达式:
Prompt> cat test.txt
chr2:95183661-95183776
chr9:951d2483661-95182423776blabla
blabla
我想出了以下正则表达式:
"chr[0-9]*:[0-9a-z]*-[0-9]*"
具有以下含义:
[0-9]*
:任意位数:
:冒号,前面有一个反斜杠,以便将其视为真实字符,而不是通配符[0-9a-z]*
:任意数量的小写字母或数字-
:一个连字符,前面有一个反斜杠,以便将其视为真实字符,而不是通配符(如[0-9]
(
测试:
Prompt> grep -o "chr[0-9]*:[0-9a-z]*-[0-9]*" test.txt
chr2:95183661-95183776
chr9:951d2483661-95182423776