我有两个文件:
pattern.csv,包含
等数据paul hung
james
julien pierre
和包含
的clients.csvPaul Hung Chong;3
James Malroy;4
Julien Pierre Take;5
我想返回
paul hung;Paul Hung Chong;3
james;James Malroy;4
julien Pierre;Julien Pierre Take;5
这样我就可以在pattern.csv中定义的键与clients.csv中定义的键之间创建匹配表
到目前为止,我试过
grep -i -F -f 'patterns.csv' 'clients.csv' > matching.csv
返回
Paul Hung Chong;3
James Malroy;4
Julien Pierre Take;5
并且
grep -i -F -f 'patterns.csv' 'clients.csv' > matching.csv
返回
Paul Hung
James
Julien Pierre
也就是说模式或匹配的线条。但我可以合并吗?
谢谢!
答案 0 :(得分:0)
如果 gawk 对你没问题:
awk -v IGNORECASE=1 -v OFS=";" 'NR==FNR{a[$0];next}
{for(x in a)if($0~x){print x,$0;break}}' pattern.txt file.csv
如果您的模式文件包含正则表达式特殊含义字符,请注意此行存在一些风险。
答案 1 :(得分:0)
有时它就像为工作找到合适的工具一样简单
$ paste -d';' pattern.csv clients.csv
paul hung;Paul Hung Chong;3
james;James Malroy;4
julien pierre;Julien Pierre Take;5
答案 2 :(得分:0)
使用awk:
awk -F';' 'FNR==NR{a[++i]=$1;next} {for (k=1; k<=i; k++)
if (index(tolower($1), tolower(a[k]))) print a[k], $0}' OFS=';' g1 g2
paul hung;Paul Hung Chong;3
james;James Malroy;4
julien pierre;Julien Pierre Take;5