Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 模式匹配的子集行_Regex_Bash_Awk_Grep - Fatal编程技术网

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(|$)