在使用两个文件时使用grep中的正则表达式

时间:2016-09-16 12:29:29

标签: linux grep

我知道你可以在grep中使用regex并使用文件中的模式来搜索另一个文件。但是,你能结合这两个选项吗?

例如,从模式来自的文件(使用文件中的使用模式的-f选项),我只想使用第一列搜索第二个文件。

我试过了:

grep -E '^(*)\b' -f file_1 file_2 > file_3

使用*通配符从file_1 grep第一列,但它不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Grep不使用通配符作为模式,它使用正则表达式,因此(*)没有意义。

如果要从文件中提取第一列,请使用cut -f1awk '{print $1}'(或sedperl或其他任何内容将其解压缩),重定向到grep使用特殊-(即标准输入)作为源文件:

cut -f1 file1 | grep -f- file_2 > file_3