加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

awk – grep:保留某些列中具有特定字符串的行

发布时间:2020-12-14 01:23:51 所属栏目:Linux 来源:网络整理
导读:我试图找出某些列中具有特定值的行并将其保存到输出中.我试图用grep这样做.可能吗? 我的数据如下所示: apple 5 abcdefd ewdsfpeach 5 ewtdsfe wtesdfmelon 1 ewtedf wersdforange 3 qqqwetr hredfg 我想在第二列中挑选出值为5的行并将其保存到新的outputfi
我试图找出某些列中具有特定值的行并将其保存到输出中.我试图用grep这样做.可能吗?

我的数据如下所示:

apple   5   abcdefd  ewdsf
peach   5   ewtdsfe  wtesdf
melon   1   ewtedf   wersdf
orange  3   qqqwetr  hredfg

我想在第二列中挑选出值为5的行并将其保存到新的outputfile中.

apple   5   abcdefd  ewdsf
peach   5   ewtdsfe  wtesdf

我很感激你的帮助!

解决方法

grep可能是可能的,但执行此操作的适当工具肯定是awk.您可以过滤第二列上每行5的行

awk '$2 == 5'

说明

awk将其输入分为记录(通常是一行)和字段(通常是一列),并对符合特定条件的记录执行操作.这里

awk '$2 == 5'

是一个简短的表格

awk '$2 == 5 {print($0)}'

转化为

For each record,if the second field ($2) is 5,print the full record ($0).

变化

如果您需要动态选择用于过滤值的键值,请使用awk的-v选项:

awk -v "key=5" '$2 == key {print($0)}'

如果您需要保留文件的第一行,因为它包含表的标题,请使用跟踪当前记录的序号的NR变量:

awk 'NR == 1 || $2 == 5'

字段分隔符是一个正则表达式,用于定义哪些文本分隔列,可以使用-F字段进行修改.例如,如果您的数据位于基本CSV文件中,则过滤器将是

awk -F",*" '$2 == 5'

访问awk标签维基,找到一些有用的信息来开始学习awk.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读