我在使用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命令匹配特定列?
发布于 2014-12-10 06:47:29
试着这样做:
$ awk '$2 == 866' test.txt不需要添加{print},awk的默认行为是在true条件下打印。
使用grep:
$ grep -P '^\S+\s+866\b' *但是awk也可以打印文件名&在这一点上比grep更健壮:
$ awk '$2 == 866{print FILENAME":"$0; nextfile}' *发布于 2018-12-20 23:26:55
在我的例子中,字段分隔符不是空格,而是逗号。所以我必须添加这个,否则它将不适用于我(在ubuntu 18.04.1上)。
awk -F ', ' '$2 == 866' test.txthttps://stackoverflow.com/questions/27390292
复制相似问题