脚本三剑客之awk

目录

awk介绍

  • AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。
  • 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

awk工作原理

  • 逐行读取文本,默认以空格或TAB键为分隔符进行分割,将分割所得的各个字段保存到内建变量中,并按照或条件进行编辑命令。
  • sed命令常用于一整行的处理,而awk比较倾向于将一行分成多个"字段"然后再进行处理。awk信息的读入也是逐行读取的,执行结果通过print的功能将字段数据打印显示。
  • 在使用awk命令过程中,可以使用逻辑操作符“&&”表示“与”、“||”示“或”、“!”表示“非”还可以进行简单的数学运算。如+、-、*、/、%、^分别表示加、减、乘、除、取余、和乘方。

awk命令格式

awk 选项 '模式模式条件 {操作}' 文件1 文件2 ...
awk -f 脚本文件 文件1 文件2 ...

awk常见的内建变量(可直接使用)与选项

变量 作用
FS 列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与-F作用一致。
NF 当前处理行的字段个数。
NR 当前处理行的行号。
$0 当前处理行的整行内容。
$n 当前处理行的第n个字段
FILENAME 被处理的文件名
RS 行分割符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’

awk 常用选项:

-F 指定输入文件折分隔符。
-v 赋值一个用户定义变量。
-f 从脚本文件中读取awk命令。

awk基础用法

示例:指定文本分隔符区段

示例:打印未知行段数的最后一段内容

示例:通过top命令一次输出,过滤cpu的空闲率

示例:使用awk命令修改输出分隔符

示例:显示行字段数

示例:当前处理行的行号

示例:使用逻辑操作符进行匹配执行文件内容

示例:使用awk命令进行简单的数学运算

示例:计算内存使用率

示例:使用awk命令显示奇数行或偶数行

示例:统计以xxxx结尾的行

:BEGIN模式表示,在处理指定的文本之前,需要先执行BEGIN模式中指定的动作;awk在处理指定的文本,之后在执行END模式中的动作,END{}语句模块中,往往会放入打印结果等语句。

示例:打印/etc/passwd文件内uid大于500的行

示例:使用if语句打印/etc/passwd文件内uid大于500的行

示例:使用c语言条件表达式打印/etc/passwd文件内gid大于uid大于500的行

(条件表达式)?(A表达式或者值):(B表达式或者值)

与三元运算符表达式相同 [ 条件表达式 ] && A || B

条件表达式成立为真时会取 :号 前面的 A的值

条件表达式不成立为假时会取 :号 后面的 B的值

示例:指定行分隔符

示例:awk命令分析 /var/log/secure 查看哪些主机在暴力破解本服务,如果统计出密码验证失败三次及三次以上就把IP加入到黑名单中 /etc/hosts.deny

awk命令高级用法

示例:通过管道符,双引号调用shell命令

示例:使用awk命令修改输出分隔符

OFS:改变输出时分隔符

注:$1=$1为修改分隔符后重新赋值,如果不赋值则$0输出的为修改前的值

示例:awk命令分析 /var/log/secure 查看哪些主机在暴力破解本服务,如果统计出密码验证失败三次及三次以上就把IP加入到黑名单中 /etc/hosts.deny

  • AWK 可以使用关联数组这种数据结构,索引可以是数字或字符串

date命令使用

  • -d 你描述的日期,显示指定字符串所描述的时间,而非当前时间
  • %F 完整日期格式,等价于 %Y-%m-%d

基本显示格式

示例:显示当月的第一天

示例:显示下个月的第一天

示例:显示当月的最后一天

示例:显示上个月的最后一天

示例:使用awk命令显示系统上次开机时间

7.脚本三剑客之awk的更多相关文章

  1. shell脚本三剑客之awk

    shell脚本之awk命令 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具 适合小型文本数据 1.工作原理 2.AWK格式 3.按行输入文本 4.按字段输入文本 5.通过管道符号,双引号调 ...

  2. shell脚本三剑客:grep、sed、awk

    shell脚本三剑客:grep  sed  awk grep语法: grep [OPTIONS] PATTERN [FILE] 常用选项 -c                       统计匹配到的 ...

  3. 文本三剑客之awk

    awk和流编辑器sed在工作原理和用法上有很多类似之处,它们都是检查输入数据中的行是否匹配指定的模式,如果匹配成功就对匹配的行执行相应的操作,重复这个过程直到所有的输入数据都被处理完,因此awk和se ...

  4. shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计

    shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...

  5. shell编程系列20--文本处理三剑客之awk常用选项

    shell编程系列20--文本处理三剑客之awk常用选项 awk选项总结 选项 解释 -v 参数传递 -f 指定脚本文件 -F 指定分隔符 -V 查看awk的版本号 [root@localhost s ...

  6. Linux 三剑客之 awk 实战详解教程

    我们知道 Linux 三剑客,它们分别是:grep.sed.awk.在前边已经讲过 grep 和 sed,没看过的同学可以直接点击阅读,今天要分享的是更为强大的 awk. sed 可以实现非交互式的字 ...

  7. day16 Linux三剑客之awk

    day16 Linux三剑客之awk 1.什么是awk,主要作用是什么? 什么是awk,主要作用是什么? awk 主要用来处理文件,将文本按照指定的格式输出.其中包含变量,循环以及数组. 2.awk的 ...

  8. Linux实战教学笔记18:linux三剑客之awk精讲

    Linux三剑客之awk精讲(基础与进阶) 标签(空格分隔): Linux实战教学笔记-陈思齐 快捷跳转目录: * 第1章:awk基础入门 * 1.1:awk简介 * 1.2:学完awk你可以掌握: ...

  9. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

随机推荐

  1. python---括号匹配

    """ 括号匹配 输入: "()[]{}" 输出true 输入:"([)]" 输出false 输入:")(()))&qu ...

  2. 更改docker默认的data,metadata存储大小(实操)

    为什么要更改 data,metadata呢?我们运行环境中涉及大量数据操作,数据增长有时候很快,由于之前规划不足,所以磁盘很快达到瓶颈需要进行重新部署.这就需要调整原来的一些docker配置.操作系统 ...

  3. Color Constancy 颜色恒定性

    1:Color Constancy? 世界上并不存在颜色.颜色仅仅是我们的眼睛和大脑对不同可见光的波长进行的一层映射.也就说颜色只是我们大脑和视网膜处理的结果. 1.1 关键问题 我们的视觉系统有一个 ...

  4. angular.js中 路由 用法及概念

    在开讲之前,首先谈谈APP应用.平时我们用的app总是多页面,如果用原生安卓或者苹果,那当然很流畅啦.但是当我们用一般的html页面做移动端,简单时候我们可以用<a href="&qu ...

  5. 缓存中间件-Redis(二)

    在上一篇中我们简单总结和介绍了Redis的几个方面 1.使用Redis背景 2.Redis通信多路复用的基本原理 3.Redis基本数据结构 4.Redis持久化方式 这一篇我们使用简单的业务场景来介 ...

  6. Apache Doris ODBC外表数据库主流版本及其ODBC版本对应关系

    本文是在CentOS 7.9下测试通过 使用的Doris是:0.15.0 unixODBC版本是:2.3.1 1.PostgreSQL 以下是PostgreSQL数据库版本和PostgreSQL OD ...

  7. Redis 内存满了怎么办?这样设置才正确!

    上回在<Redis 数据过期了会被立马删除么?>说到如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走 ...

  8. 二叉查找树速通攻略 图文代码精心编写(Java实现)

    说在前面 如题目所言 这篇文章为了给下一篇二叉查找数做铺垫和前期知识准备,以便大家有良好的阅读体验,本来想合在一起的,但觉得有些长,所以就拆开了哈哈哈,还是新手向,两篇文章有些长,但如果能认真看下去, ...

  9. RESTFul是一种风格

    只要符合RESTFul风格的,都可以叫做使用了RESTFul架构,一般的网站里传数据,都是用的?a=1&b=2...如果是RESTFul风格的话,就会是/a/1/b/2..类似于这样的方式来传 ...

  10. Nacos源码系列—服务端那些事儿

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 前言 在上节课中,我们讲解了客户端注册服 ...