前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AWK第二课

AWK第二课

作者头像
苦咖啡
发布2018-04-28 14:19:32
6570
发布2018-04-28 14:19:32
举报
文章被收录于专栏:我的博客

1、工作原理 例子: cat /etc/passwd |awk -F ‘:’ ‘BEGIN {print “name”} {print $1} END {print “Joyous”}’ 说明: awk是先执行BEGIN,然后去读文件,一行一行读取,-F指定了每行按照:分割,其中$0标示当前行,$1标示分割第一个区域,$n标示第n个区域。一直到读取完毕,最后执行END 2、正则匹配 awk -F: ‘/^root/{print $1}’ /etc/passwd 说明:搜索root开头的行打印第一个区域 3、内置变量 ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME awk浏览的文件名 FNR 浏览文件的记录数 FS 设置输入域分隔符,等价于命令行 -F选项 NF 浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符 示例: awk -F’:’ ‘{print “filename:” FILENAME “,line:” NR “,cols:” NF}’ /etc/passwd 4、printf格式化输出 awk -F ‘:’ ‘{printf(“filename:%s,linenumber:%s,columns:%s,linecontent:%s\n”,FILENAME,NR,NF,$0)}’ /etc/passwd 5、编程 定义变量可以在action块定义,语句使用;分开 awk ‘BEGIN {count=0;} {count++; print $0;} END{print “user count is “, count}’ /etc/passwd 条件语句if(){}else{} 6、函数 length(string)返回字符串的长度 index(string,find)返回子字符串在父字符串位置 tolower(string)将所有字符都转成小写 toupper(string)将所有字符都转成大写 substr(string,strat,length)截取字符串 match(string,ereg)支持正则匹配 sub(reg,rep,string)替换匹配的第一个字符序列 gsub(reg,rep,string)替换匹配的全部字符序列 split(string,arr,char)分割字符

参考: http://www.gnu.org/software/gawk/manual/gawk.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年5月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档