用grep命令匹配特定的列

我有麻烦匹配特定列与grep命令。 我有一个testing文件(test.txt)像这样..

Bra001325 835 T 13 c$c$c$c$c$cccccCcc !!!!!68886676 Bra001325 836 C 8 ,,,,,.,, 68886676 Bra001325 841 A 6 ,$,.,,. BJJJJE Bra001325 866 C 2 ,. HJ 

我想提取所有那些在第二列有866号的行。 当我使用grep命令时,我正在获取包含数字的所有行

 grep "866" test.txt Bra001325 835 T 13 c$c$c$c$c$cccccCcc !!!!!68886676 Bra001325 836 C 8 ,,,,,.,, 68886676 Bra001325 866 C 2 ,. HJ 

我怎样才能匹配特定的列与grep命令?

尝试这样做:

 $ awk '$2 == 866' test.txt 

不需要添加{print}awk的默认行为就是在true条件下打印。

用grep :

 $ grep -P '^\S+\s+866\b' * 

但awk可以打印文件名也比grep更健壮:

 $ awk '$2 == 866{print FILENAME":"$0; nextfile}' *