我在使用gawk交叉引用数据时遇到了问题,当我使用:
gawk -F: 'FNR==NR{a[$1]=$2;next} $2 in a{print $1 FS a[$2]}' email.phone.txt name.email.txt > name.phone.txtemail.phone内容示例:
Email@gmail.com:012345
Email@gmail.com:912345Name.email.txt的例子:
Charles:Email@gmail.com
Erica:Email@gmail.com预期产出
Charles:012345
Charles:912345
Erica:012345
Erica:912345但是,它只使用该电子邮件输出最后一个匹配的电话,因此它只输出:
Charles:912345
Erica:912345把第一部和那封电子邮件一起使用的手机扔掉。
发布于 2019-05-06 03:05:05
GNU (gawk) --但不是常规awk--支持真正的多维数组,您可以使用它:
gawk -F: '
FNR==NR{a[$1][$2]=1;next}
$2 in a{for(i in a[$2]) print $1 FS i}
' email.phone.txt name.email.txthttps://unix.stackexchange.com/questions/517320
复制相似问题