Awk

Gawk 部分匹配

  • August 26, 2018

我的 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@email.com:phoneexample

username.email.txt - 包含:

user1:email@email.com
user131:email@email.com

預期輸出 - 應該是:

user1:phoneexample
user131:phoneexample

相反,它只會匹配包含“email@email.com”的行中的 1 行

輸出 -

user131:email@email.com

反轉文件和欄位時可能會更好:

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

引用自:https://unix.stackexchange.com/questions/464958