Regex 模式匹配的子集行
我有一个以制表符分隔的文件,其列的格式如下:Regex 模式匹配的子集行,regex,bash,awk,grep,Regex,Bash,Awk,Grep,我有一个以制表符分隔的文件,其列的格式如下: cat 1/1:127:59:0:1 0/0:.:78:0:.,.,.:1 0/0:.:64:0:.,.,.: cat 0/0:.:53:0:.,.,.:1 0/1:.:53:0:.,.,.:0 0/0:.:57:0:.,.,.:1 dog 1/0:127:59:0:1 1/1:.:78:0:.,.,.:1 0/0:.:64:0:.,.,.:1 我需要对所有具有一个或多个列(以“1/1
cat 1/1:127:59:0:1 0/0:.:78:0:.,.,.:1 0/0:.:64:0:.,.,.:
cat 0/0:.:53:0:.,.,.:1 0/1:.:53:0:.,.,.:0 0/0:.:57:0:.,.,.:1
dog 1/0:127:59:0:1 1/1:.:78:0:.,.,.:1 0/0:.:64:0:.,.,.:1
我需要对所有具有一个或多个列(以“1/1:”开头,以“:1”结尾)的行进行子集,给出以下文件:
cat 1/1:127:59:0:1 0/0:.:78:0:.,.,.:1 0/0:.:64:0:.,.,.:0
dog 1/0:127:59:0:1 1/1:.:78:0:.,.,.:1 0/0:.:64:0:.,.,.:1
我尝试过使用grep和正则表达式,但似乎无法使其正常工作
任何帮助都将不胜感激
注意。实际文件非常大您可以试试
^.+?\s1\/1.+
请参阅。您可以试试
^.+?\s1\/1.+
请参阅。使用
grep
BRE应如下所示:
grep ' 1/1:[^ ]*:1\( \|$\)' file
您只需要检查一列是否以所需的分隔符开始和结束
请注意,在正则表达式的开头有一个空格。使用
grep
BRE应该是这样的:
grep ' 1/1:[^ ]*:1\( \|$\)' file
您只需要检查一列是否以所需的分隔符开始和结束
请注意,正则表达式开头有一个空格。因此您只需说
[]1/1:[^]*:1(|$)
因此您只需说[]1/1:[^]*:1(|$)