我在使用grep命令匹配特定列时遇到问题。我有一个像这样的测试文件(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命令匹配特定列?
答案 0 :(得分:13)
尝试这样做:
$ awk '$2 == 866' test.txt
无需添加{print}
,awk
的默认行为是在true
条件下打印。
grep:
$ grep -P '^\S+\s+866\b' *
$ awk '$2 == 866{print FILENAME":"$0; nextfile}' *
答案 1 :(得分:1)
在我的情况下,字段分隔符不是空格而是逗号。因此,我必须添加它,否则它对我不起作用(在ubuntu 18.04.1上)。
awk -F ', ' '$2 == 866' test.txt