我知道你可以在grep中使用regex并使用文件中的模式来搜索另一个文件。但是,你能结合这两个选项吗?
例如,从模式来自的文件(使用文件中的使用模式的-f选项),我只想使用第一列搜索第二个文件。
我试过了:
grep -E '^(*)\b' -f file_1 file_2 > file_3
使用*通配符从file_1 grep第一列,但它不起作用。有什么想法吗?
答案 0 :(得分:1)
Grep不使用通配符作为模式,它使用正则表达式,因此(*)
没有意义。
如果要从文件中提取第一列,请使用cut -f1
或awk '{print $1}'
(或sed
或perl
或其他任何内容将其解压缩),重定向到grep
使用特殊-
(即标准输入)作为源文件:
cut -f1 file1 | grep -f- file_2 > file_3