Regex 匹配指定列范围不包含点字符的行

Regex 匹配指定列范围不包含点字符的行,regex,linux,awk,Regex,Linux,Awk,我有一个以制表符分隔的文件,如下所示: 2L <TAB> 440 <TAB> . <TAB> . <TAB> . <TAB> 1/1:49:42,6,0 2L <TAB> 260 <TAB> 0/1:66:63,0,207 <TAB> . <TAB> . <TAB> 1/1:49:42,6,0 2L <TAB> 595 <TAB> 0/1:11:85

我有一个以制表符分隔的文件,如下所示:

2L <TAB> 440 <TAB> . <TAB> . <TAB> . <TAB> 1/1:49:42,6,0  
2L <TAB> 260 <TAB> 0/1:66:63,0,207 <TAB> . <TAB> . <TAB> 1/1:49:42,6,0
2L <TAB> 595 <TAB> 0/1:11:85,0,8 <TAB>0/1:13:132,0,10 <TAB>0/1:73:70,0,131<TAB> 0/1:59:72,0,56
提前感谢

awk:

awk -F'\t' '{ for(i=3;i<=NF;i++)if($i ==".") next; print}' input.txt > out.txt
sed:

awk:

sed:


不确定是否有任何方法可以更优雅地完成,但这应该是可行的:

awk '$3$4$5$6$7$8$9$10$11$12$13$14$15$16$17$18$19 !~ /\./ {print}'

它基本上连接所有相关字段并搜索一个。在结果中,仅当不匹配时才打印。

不确定是否有任何方法可以更优雅地进行打印,但这应该是可行的:

awk '$3$4$5$6$7$8$9$10$11$12$13$14$15$16$17$18$19 !~ /\./ {print}'

它基本上连接所有相关字段并搜索一个。在结果中,仅当不匹配时才打印。

带有
sed的变体

sed '/\([^\t]*\t\)\{2\}.*\t\.\t/d' input.txt > out.txt

带有
sed的变量

sed '/\([^\t]*\t\)\{2\}.*\t\.\t/d' input.txt > out.txt
sed '/\([^\t]*\t\)\{2\}.*\t\.\t/d' input.txt > out.txt