AWK第二课

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端迷

很实用的前端开发规范

1.标准变量命名使用驼峰式命名 eg. let thisIsMyName; 2.常量全部大写,并使用下划线连接 eg. const MAX_COUNT = 10...

1172
来自专栏运维小白

linux基础(day27)

9.4 sed(上) sed工具 sed -n '5'p test.txt sed -n '1,5'p test.txt sed -n '1,$'p test....

1937
来自专栏TungHsu

这或许是对小白最友好的python入门了吧——18,定义函数

有的时候我们写的代码往往是一个功能组合,并且这组代码可能会很复杂,但是我们在写代码的时候可能会多次用到这组代码,每次都写这么多代码浪费时间并且检查、修改起来也很...

3577
来自专栏阮一峰的网络日志

awk 入门教程

它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。

1012
来自专栏我的博客

Laravel 辅助函数

array_add() 如果给定的键不在数组中,会把给定的键值对加到数组中.否则则不加入 array_divide() 函数返回两个数组,一个包含原本数组的键...

30610
来自专栏技术与生活

设计模式-模板方法模式

这里的抽象类就是抽象模板类,定义一个或者多个抽象方法,迫使子类来完成。同时定义一个模板方法,该方法一般情况下是一个具体方法,给出模板方法的执行过程,里面调用抽象...

841
来自专栏Fundebug

ES6之Spread Operater拷贝对象

1284
来自专栏海天一树

小朋友学数据结构(5):顺序查找法

查找是最常见的数据操作之一,也是数据结构的核心运算之一,其重要性不言而喻。 顺序查找是最简单的查找策略,对于小规模的数据,顺序查找是个不错的选择。

1512
来自专栏python读书笔记

《算法图解》NOTE 5 散列表1.散列表简介2.散列表的特点2.1优点2.2缺点3.应用

1925
来自专栏高爽的专栏

Java线程(十一):Fork/Join-Java并行计算框架

并行计算在处处都有大数据的今天已经不是一个新鲜的词汇了,现在已经有单机多核甚至多机集群并行计算,注意,这里说的是并行,而不是并发。严格的将,并行是指系统内...

2760

扫码关注云+社区

领取腾讯云代金券