gsub代表全局替换。除了原字符串的所有事件都改为替换字符串 外,gsub和sub完全相同。
在下面例子里,"CA" 和 "Ca" 都被改为 "KA":
$ cat gsub.awk
BEGIN {
state="CA is California";
gsub("C[Aa]","KA",state);
print state;
}
$ awk -f gsub.awk
KA is KAlifornia
与sub一样,第三个参数是可选的。当它没有指定,awk将使用$0如下所示:
下面的示例用"20"替换行里"10"所有事件。因此,它不只是改变了项目数,它也改变了记录的其他数字字段,如果包含“ 10 ” 。
$ cat items.txt
101,HD Camcorder,Video,210,10
102,Refrigerator,Appliance,850,2
103,MP3 Player,Audio,270,15
104,Tennis Racket,Sports,190,20
105,Laser Printer,Office,475,5
$ awk '{gsub("10","20");print $0; }' items.txt
201,HD Camcorder,Video,220,20
202,Refrigerator,Appliance,850,2
203,MP3 Player,Audio,270,15
204,Tennis Racket,Sports,190,20
205,Laser Printer,Office,475,5