我们使用/ect/passwd文件来模拟,我们取出文件中:
出现的次数
[root@web01-7 /]# cp /etc/passwd /tmp/
[root@web01-7 /]# awk '{Num=gsub(/:/,":",$0);sum = sum + Num}END{print sum}' /tmp/passwd
156
1,第一个里程碑
awk中有个替换函数
gsub
这个函数可以替换指定字符串,并返回替换操作的次数,我们可以使用这个来来文件中的":"
替换成":"
然后让他返回替换了多少次,我们就能统计出来出现了多少次
2,第二个里程碑
了解gsub的语法格式: 替换:
gsub(/要替换的字符串/,"替换成的字符串",在哪个地方替换)
替换的次数:Num = gsub(/要替换的字符串/,"替换成的字符串",在哪个地方替换)
3,第三个里程碑
了解了上面两个我们就能完整上述的那个表达式了,为什么要在最后面输出END呢?因为我们对sum进行了累加,再有在末行模式才能统计出来出现的所有次数
4,优化上述表达式
[root@web01-7 /]# awk '{sum = sum + gsub(/:/,"",$0)}END{print sum}' /tmp/passwd
156
总结
1,awk中的gsub替换所有的符合的字符串,相当于sed的“s###g” 2,awk中的sub只替换第一次匹配的字符串,相当于sed的“s###”
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。