Linux AWK学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 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学习的主要内容,如果未能解决你的问题,请参考以下文章

Linux AWK学习

Linux Shell学习--awk命令详解

linux基础学习-18-linux三剑客之awk命令精讲

linux 中awk 学习随笔

Linux awk工具简单学习记录

linux基础学习第二十二天之AWK详解