awk

Gsub Function

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