Gawk 部分匹配

Gawk 部分匹配

我的 gawk 脚本不匹配所有潜在结果,它只匹配其中之一..

例子 -

脚本:

gawk -F: "FNR==NR{a[$2]=$1;next} $1 in a{print a[$1] FS $2}" username.email.txt email.phone.txt > username.phone.txt 

email.phone.txt - 包含:

 [email protected]:phoneexample

username.email.txt - 包含:

 user1:[email protected]
 user131:[email protected]

预期输出 - 应该是:

 user1:phoneexample
 user131:phoneexample

相反,它只会匹配包含“的行之一[电子邮件受保护]

输出-

 user131:[email protected]

答案1

反转文件和字段时您可能会更好:

awk -F: 'FNR==NR{a[$1]=$2;next} $2 in a{print $1 FS a[$2]}' email.phone.txt username.email.txt
user1:phoneexample
user131:phoneexample

相关内容