首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grep结果的grep

使用grep结果的grep
EN

Stack Overflow用户
提问于 2017-12-17 10:37:25
回答 3查看 93关注 0票数 3

假设我有两个包含属性名称和属性的文件,其中不同的数据存储在两个文件中:

1.txt:

代码语言:javascript
复制
abc12      3@     50
edf13      4@     50
dde8       3@     50

2.txt

代码语言:javascript
复制
abc12      3@     65
edf13      4@     50
dde8       3@     70
dde7       3@     70

我希望grep如下所示:首先- grep "3@" 1.txt | awk '{print $1}',然后是grep * 2.txt,其中star(*)表示第一个grep的输出。

所有这些都应该从提示符中用一行来完成。

预期输出:

代码语言:javascript
复制
abc12      3@     65
dde8       3@     70

谢谢

EN

回答 3

Stack Overflow用户

发布于 2017-12-17 11:00:11

使用一个awk进程:

代码语言:javascript
复制
awk 'FNR==NR{if ($2 ~ "3@") a[$1]++; next} a[$1]' 1.txt 2.txt

第一个condition{action}意味着当读取第一个文件时,使用第一个字段作为散列增加数组元素。当该元素为一个或多个元素时,第二个条件a[$1]为真,将检查第二个文件,默认操作是打印行。

票数 4
EN

Stack Overflow用户

发布于 2017-12-17 21:36:44

我认为其他的答案更好,这是如果你坚持grep

代码语言:javascript
复制
grep "3@" 1.txt| awk '{print $1}' | while read i;do grep $i 2.txt;done
票数 1
EN

Stack Overflow用户

发布于 2017-12-17 12:50:02

连接和grep的另一种方式

代码语言:javascript
复制
join -t $'\t' -o 2.1 2.2 2.3 1.txt 2.txt | grep 3@
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47854252

复制
相关文章

相似问题

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