ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [Shell] awk sub,gsub

[Shell] awk sub,gsub

原创 Linux操作系统 作者:tolilong 时间:2016-03-24 13:19:16 0 删除 编辑
sub  只替换每行的第一个匹配字符,或者指定域的第一个匹配字符
gsub会替换当前行的所有匹配字符

[/tmp/test]# more tt1
50 IT                                         China            800 
10 ACCOUNTING                                 LA               1100
20 RESEARCH                                   DALLAS           560
30 SALES                                      CHICAGO          2800
40 OPERATIONS                                 BOSTON           5500
10 DEVELOPER                                  HOSTON           1300

[/tmp/test]# cat tt1 | awk 'sub(0,9)'                     --每行的第一个匹配字符0替换为9
59 IT                                         China            800 
19 ACCOUNTING                                 LA               1100
29 RESEARCH                                   DALLAS           560
39 SALES                                      CHICAGO          2800
49 OPERATIONS                                 BOSTON           5500
19 DEVELOPER                                  HOSTON           1300

[/tmp/test]# cat tt1 | awk 'sub(0,9,$4)'                    --每行的第四列的第一个匹配字符0替换为9
50 IT China 890
10 ACCOUNTING LA 1190
20 RESEARCH DALLAS 569
30 SALES CHICAGO 2890
40 OPERATIONS BOSTON 5590
10 DEVELOPER HOSTON 1390

[/tmp/test]#  cat tt1 | awk 'gsub(0,9)'                           --每行的所有匹配字符0全部替换为9
59 IT                                         China            899 
19 ACCOUNTING                                 LA               1199
29 RESEARCH                                   DALLAS           569
39 SALES                                      CHICAGO          2899
49 OPERATIONS                                 BOSTON           5599
19 DEVELOPER                                  HOSTON           1399


[/tmp/test]# cat tt1 | awk 'sub(1,9)'                                 --不匹配行的时候没有输出,需要加上print $0
90 ACCOUNTING                                 LA               1100
90 DEVELOPER                                  HOSTON           1300
[/tmp/test]# cat tt1 | awk '{sub(1,9);print $0}'
50 IT                                         China            800 
90 ACCOUNTING                                 LA               1100
20 RESEARCH                                   DALLAS           560
30 SALES                                      CHICAGO          2800
40 OPERATIONS                                 BOSTON           5500
90 DEVELOPER                                  HOSTON           1300

[/tmp/test]# cat tt1 | awk '{gsub(1,9);print $0}'
50 IT                                         China            800 
90 ACCOUNTING                                 LA               9900
20 RESEARCH                                   DALLAS           560
30 SALES                                      CHICAGO          2800
40 OPERATIONS                                 BOSTON           5500
90 DEVELOPER                                  HOSTON           9300

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24237320/viewspace-2063087/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-13

  • 博文量
    406
  • 访问量
    1208671