我想使用列表中的搜索词(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
答案 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