我有两份文件:
pattern.csv,它包含类似于
paul hung
james
julien pierre和clients.csv包含
Paul 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也就是说,模式或匹配的线条。但我能把两者合并吗?
谢谢!
发布于 2014-03-20 10:01:41
使用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发布于 2014-03-20 09:52:14
如果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注意,如果您的模式文件包含regex特殊含义字符,则这一行有一定的风险。
发布于 2014-03-20 09:54:58
有时就像找到合适的工作工具一样简单
$ paste -d';' pattern.csv clients.csv
paul hung;Paul Hung Chong;3
james;James Malroy;4
julien pierre;Julien Pierre Take;5https://stackoverflow.com/questions/22528711
复制相似问题