首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grep命令匹配特定列

使用grep命令匹配特定列
EN

Stack Overflow用户
提问于 2014-12-10 06:44:01
回答 2查看 67.2K关注 0票数 8

我在使用grep命令匹配特定列时遇到问题。我有一个这样的测试文件(test.txt)。

代码语言:javascript
复制
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命令时,我会得到包含该数字的所有行

代码语言:javascript
复制
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命令匹配特定列?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-10 06:47:29

试着这样做:

代码语言:javascript
复制
$ awk '$2 == 866' test.txt

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

使用grep

代码语言:javascript
复制
$ grep -P '^\S+\s+866\b' *

但是awk也可以打印文件名&在这一点上比grep更健壮:

代码语言:javascript
复制
$ awk '$2 == 866{print FILENAME":"$0; nextfile}' *
票数 21
EN

Stack Overflow用户

发布于 2018-12-20 23:26:55

在我的例子中,字段分隔符不是空格,而是逗号。所以我必须添加这个,否则它将不适用于我(在ubuntu 18.04.1上)。

代码语言:javascript
复制
awk -F ', ' '$2 == 866' test.txt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27390292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档