我有一个制表符分隔的文件,其中的列格式如下:
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。实际文件很大
答案 0 :(得分:0)
答案 1 :(得分:0)
使用grep
的BRE应该是这样的:
grep ' 1/1:[^ ]*:1\( \|$\)' file
您只需要检查一列是否以所需的分隔符开始和结束。
请注意,正则表达式的开头有一个空格。