码迷,mamicode.com
首页 > 系统相关 > 详细

Linux AWK学习

时间:2018-03-06 10:50:22      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:awk讲解

Awk:
awk 语法: awk 模式 { 操作}
模式: 正则,关系表达式,模式,BEGIN,END,
操作: 由 命令、函数、表达式组成了。

文本源文件 scores.txt
技术分享图片

执行awk的方式:
1.命令行下执行
技术分享图片

2.执行awk脚本 awk -f 脚本名 文件名
3.可执行awk脚本
技术分享图片

AWK的模式匹配:
1.使用正则模式打印出T开头的行,只取第一列
技术分享图片

2.区间模式,即模式一和模式二中间的行会被匹配到
3.BEGIN 模式,在读取文件行之前操作的 (可以把一些文件描述,变量等写在此模式)
4.END 模式,在结束时操作的,跟BEGIN相反
写一个关于BEGIN和END的脚本:
技术分享图片
注意一个细节问题:
在脚本中,模式不用加引号,而操作还是需要{ },并且{需要和模式在一行
一个模式中有多个操作,那就换行写
在命令行下面 ,一个引号里边有模式,和操作 。两个模式用分号;隔开

awk中系统内置变量
(记录大多时候=行)
$0 当前正在处理的记录
$n 第几个字段
NF 当前记录的字段数
NR 已经读了几条记录
FILENAM 文件名
FS 字段分隔符
RS 记录分隔符 默认:换行符

例子:源文件 articles.txt
技术分享图片
重新设置分隔符:
技术分享图片

AWK中也可以支持运算符和表达式

BEGIN {
x=5/2
print x
}

条件表达式:
语法:expression?value1:value2
关系运算符

,<,==, ~,!~,等等
8==8 {print} 即 如果8=8为真,就执行print操作
例子 :~ 是匹配的意思
下面是指: 匹配第一个字段(列)以K开头的记录 打印出来
技术分享图片

Linux AWK学习

标签:awk讲解

原文地址:http://blog.51cto.com/9486329/2083259

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!