Regex 如何使用awk匹配完整单词

Regex 如何使用awk匹配完整单词,regex,bash,awk,Regex,Bash,Awk,我有一个脚本,它将变量$userId的值作为输入,并在下面的awk命令中使用它 gzip -cd "input.csv.gz"|/usr/xpg4/bin/awk -v search="$userId" -F, 'BEGIN{ OFS=","} { if( match($4, search)) print $0 }' >>$outputFileNameUser input.csv.gz的格式如下: gzip -cd input.csv.gz|head -4 Circle,Date,

我有一个脚本,它将变量$userId的值作为输入,并在下面的
awk
命令中使用它

gzip -cd "input.csv.gz"|/usr/xpg4/bin/awk -v search="$userId" -F, 'BEGIN{ OFS=","} { if( match($4, search)) print $0 }' >>$outputFileNameUser
input.csv.gz的格式如下:

gzip -cd input.csv.gz|head -4
Circle,Date,Time,SubscriberId,OperatorId,VoucherNumber,Status
UPE,01-JUN-15,20:23:39,9936596081,,1161504025632821,Used
UPE,01-JUN-15,20:23:39,7755802655,,1161504038349788,Used
UPE,01-JUN-15,20:23:39,9793948511,,1161504027670339,Used
此awk命令将输入文件的第四个字段(即SubscriberId)与变量$UserId匹配。第一行$4的值为9936596081。 因此,即使我提供“6596”(9936596081的一部分)作为$UserId,它也将匹配第一行。我想匹配完整的号码(9936596081),而不是号码的任何部分。。我试过这样

gzip -cd "${outputFileName}"|/usr/xpg4/bin/awk -v search="$userId" -F, 'BEGIN{ OFS=","} { if( $4 ==  "search")) print $0 }' >>$outputFileNameUser
但是没有起作用。。你能帮我一下吗?

像这样试试:

awk -v search="$userId" -F, '$4==search'

似乎就是你要找的?嗨。。我在原问题中补充了更多细节。。