awk:只能在某个字段中查找和replace

我有这样的文本文件:

$ cat test 12 13 2100 s 12 13 3100 s 100 13 100 s 12 13 300 s 

我想输出是这样的:

 $ cat test 12 13 22000 s 12 13 32000 s 100 13 2000 s 12 13 300 s 

我只想把第三场(一次100包含在$3 )的100换成2000 。 我如何使用awk完成这项工作?

这里有一个使用awk

 awk '{ sub(/100$/, "2000", $3) }1' file 

结果:

 12 13 22000 s 12 13 32000 s 100 13 2000 s 12 13 300 s 

尝试:

 awk '{$3=gensub(100,2000,1,$3);print}' test.txt 
 awk '$3~/100/{gsub(/100/,"2000",$3)}1' your_file