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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |