3

Linux 内核源代码中有很多文件,config/*我想找到一个与我的开发板类似的文件。

所以我尝试:

egrep -l -e key1 -e key2 config/*

Sample config/file1:
    This is key1
    This is key2
Sample config/file2:
    This is key1
Sample config/file3:
    This is key2

但结果要么是要么key1文件key2列表。我想要包含的结果,key1 或者 key2 是否有其他简单的 unix shell 可以生成结果?

在之前的示例中,我只想列出“file1”。

4

2 回答 2

2

我的建议:

( grep -l key1 config/* ; grep -l key2 config/* ) |sort |uniq -c |grep '^ *2\>' |awk '{print $2}'

首先grep打印所有包含 的文件key1,第二个grep打印所有包含key2,然后是 的文件sortuniq第三个过滤器过滤两次grep列出的文件,即包含两个键。

于 2015-05-03T10:56:07.820 回答
0

'grep -E 'pat1.*pat2|pat2.*pat1'' 是我常用的咒语。只有当这些模式以给定的顺序出现时,公理的解决方案才有效,“|” 正则表达式运算符允许搜索以任何顺序查找模式。

于 2012-11-30T10:12:54.900 回答