Linux AWK学习
Awk:awk 语法:awk 模式 { 操作}
模式: 正则,关系表达式,模式,BEGIN,END,
操作:由 命令、函数、表达式组成了。
文本源文件 scores.txt
http://i2.运维网.com/images/blog/201803/05/d1ee490c65d2750513959f05d24392ea.png
执行awk的方式:
1.命令行下执行
http://i2.运维网.com/images/blog/201803/05/3377388099340db12645636fddacc88d.png
2.执行awk脚本 awk -f 脚本名文件名
3.可执行awk脚本
http://i2.运维网.com/images/blog/201803/05/02e5e3660776eed21a91ab678f066c3d.png
AWK的模式匹配:
1.使用正则模式打印出T开头的行,只取第一列
http://i2.运维网.com/images/blog/201803/05/702dc6060a9e1dc285760ee7e1baef0e.png
2.区间模式,即模式一和模式二中间的行会被匹配到
3.BEGIN 模式,在读取文件行之前操作的 (可以把一些文件描述,变量等写在此模式)
4.END 模式,在结束时操作的,跟BEGIN相反
写一个关于BEGIN和END的脚本:
http://i2.运维网.com/images/blog/201803/05/779bd8c9ba9c00c2c920bcb83155e35f.png
注意一个细节问题:
在脚本中,模式不用加引号,而操作还是需要{ },并且{需要和模式在一行
一个模式中有多个操作,那就换行写
在命令行下面 ,一个引号里边有模式,和操作 。两个模式用分号;隔开
awk中系统内置变量
(记录大多时候=行)
$0当前正在处理的记录
$n 第几个字段
NF 当前记录的字段数
NR 已经读了几条记录
FILENAM文件名
FS 字段分隔符
RS 记录分隔符 默认:换行符
例子:源文件 articles.txt
http://i2.运维网.com/images/blog/201803/05/5aef7bcf91bc2e16ea99d9ad6e570d67.png
重新设置分隔符:
http://i2.运维网.com/images/blog/201803/05/95f51c9fb1e442fbebae0207cd64a09c.png
AWK中也可以支持运算符和表达式
如
BEGIN {
x=5/2
print x
}
条件表达式:
语法:expression?value1:value2
关系运算符
,
页:
[1]