如何在grep中显示搜索词

时间:2018-05-03 15:16:44

标签: linux grep

我想使用列表中的搜索词(file2)递归搜索文件(file1)。文件1包含一列中用逗号分隔的项目的长列表。我想创建一个新文件(file3),列出搜索词和包含搜索词的行。我可以用grep / sed / awk来做这个吗?

档案1

A, 1, 2, 3
B, 4, 5, 6
C, 7, 8, 9

文件2

A
B
C
D

所需文件3

A A, 1, 2, 3
B B, 4, 5, 6
C C, 7, 8, 9

2 个答案:

答案 0 :(得分:1)

这个awk单行应该有所帮助:

awk -F"," 'NR==FNR{k[$0];next}
         {for(i=1;i<=NF;i++)if($i in k){print $i,$0;break}}' file2 file1

答案 1 :(得分:1)

使用 awk 保存到 file3 使用此代码: -

awk -F"," 'NR==FNR{k[$0];next}
         {for(i=1;i<=NF;i++)if($i in k){print $i,$0;break}}' file2 file1 > file3

内容将保存到 file3 。使用cat file3显示 file3 的内容。

cat file3

输出

A A, 1, 2, 3
B B, 4, 5, 6
C C, 7, 8, 9