Linux中gsub函数,awk函数sub/gsub

-bash-3.2$ awk '{ split( "20:18:00", time, ":" ); print time[2] }'

-bash-3.2$ awk '{ split( "20:18:00", time, ":" ); print time[2] }' feng.txt

18

18

18

18

18

18

-bash-3.2$ awk 'BEGIN{ split( "20:18:00", time, ":" ); print time[2] }'

18

-bash-3.2$ wc -l feng.txt

6 feng.txt

-bash-3.2$

-bash-3.2$ cat feng.txt

k   2012-1-3 13:00:46

a   2012-1-3 18:07:59

d   2012-1-3 18:07:59

b   2012-1-3 9:01:48

b   2012-1-3 13:00:46

b   2012-1-3 18:07:59

-bash-3.2$ cat feng.txt |awk '{gsub(/2012/,"yangkai")print }'

awk: {gsub(/2012/,"yangkai")print }

awk:                        ^ syntax error

-bash-3.2$ cat feng.txt |awk '{gsub(/2012/,"yangkai");print }'

k   yangkai-1-3 13:00:46

a   yangkai-1-3 18:07:59

d   yangkai-1-3 18:07:59

b   yangkai-1-3 9:01:48

b   yangkai-1-3 13:00:46

b   yangkai-1-3 1

-bash-3.2$ cat feng.txt |awk '{{gsub(/1/,"yk"),$3}print }'

awk: {{gsub(/1/,"yk"),$3}print }

awk:                 ^ syntax error

-bash-3.2$ cat feng.txt |awk '{gsub(/1/,"yk"),$3};print }'

awk: {gsub(/1/,"yk"),$3};print }

awk:                ^ syntax error

awk: {gsub(/1/,"yk"),$3};print }

awk:                     ^ syntax error

-bash-3.2$ cat feng.txt |awk '{gsub(/1/,"yk"),$3}print }'

awk: {gsub(/1/,"yk"),$3}print }

awk:                ^ syntax error

awk: {gsub(/1/,"yk"),$3}print }

awk:                    ^ syntax error

-bash-3.2$ cat feng.txt |awk '{gsub(/1/,"yk",$3);print }'

k 2012-1-3 yk3:00:46

a 2012-1-3 yk8:07:59

d 2012-1-3 yk8:07:59

b 2012-1-3 9:0yk:48

b 2012-1-3 yk3:00:46

b 2012-1-3 yk8:07:59

-bash-3.2$

sub函数匹配记录中最大、最靠左边的子字符串的正则表达式,并用替换字符串替换这些字符串。如果没有指定目标字符串就默认使用整个记录。替换只发生在第一次匹配的时候.

gsub函数作用如sub,但它在整个文档中进行匹配。

-bash-3.2$ cat feng.txt |awk '{sub(/1/,"yk",$3);print }'

k 2012-1-3 yk3:00:46

a 2012-1-3 yk8:07:59

d 2012-1-3 yk8:07:59

b 2012-1-3 9:0yk:48

b 2012-1-3 yk3:00:46

b 2012-1-3 yk8:07:59

-bash-3.2$ cat feng.txt |awk '{sub(/1/,"yk");print }'

k   20yk2-1-3 13:00:46

a   20yk2-1-3 18:07:59

d   20yk2-1-3 18:07:59

b   20yk2-1-3 9:01:48

b   20yk2-1-3 13:00:46

b   20yk2-1-3 18:07:59

-bash-3.2$

length函数返回记录的字符数。

-bash-3.2$ awk 'BEGIN{print length("yangkai")}'

7

-bash-3.2$

awk  'BEGIN{FS=OFS=":"}{if($3<=50)$3="500";print}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值