我有一个制表符分隔文件,其列格式如下:
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和正则表达式,但我似乎无法让它工作。
任何帮助将不胜感激!
NB。实际文件非常大
使用grep
,BRE应该是这样的:
grep ' 1/1:[^ ]*:1\( \|$\)' file
您只需要检查一列是否以所需的分隔符开始和结束。
请注意,正则表达式的开头有一个空格。