Linux常用命令——awk

awk  一种编程语言

语法格式:awk 【option】'pattern{action}'【file】... awk [选项] '条件{动作}' [文件] ...
注意:awk 命令及后面的选项和文件里,每个元素之间都要至少要有一个空格
选项说明:

参数选项解释说明
-F指定字符安分隔符
-v定义或修改一个 awk 内部的变量
$取、引用
$1第一个列
$0整行
$NF最后一行
$(NF-1)倒数第二行
RS每个记录读入的时候的分隔符(类似于换行符 \n)
NR行号,记录的数
ORS输出时候的分隔符

关系运算符

运算符含义示例
<小于x < y
<=小于等于x <= y
==等于x == y
!=不等于x != y
>=小于x < y
<大于等于x >= y
>大于x > y
~与正则表达式匹配x~/y/
!~与正则表达式不匹配x!~y

案例一:
awk 环境简介
Linux常用命令——awk
案例二:
awk执行过程:

  1. awk 读入第一行内容
  2. 判断是否符合模式中的条件(如:NR>=2)
    a. 如果匹配则执行对应的动作(如:{print $0})
    b. 如果不匹配条件,继续读取下一行
  3. 继续下一行
  4. 重复过程 1-3,知道读取到最后一行(EOF:end of file)

    关于记录的简单说明:

  5. 大象放冰箱分几步?打开冰箱门,把大象放进去,关闭冰箱门。
  6. 对使用 NR、NF、$数字,配合调试你的 awk 命令。
  7. NR 存放着每个记录的号(行号)读取新行时候会自动 +1
  8. RS 是记录的分隔符,简单理解就是可以指定每个记录的结尾标志。
  9. 用 RS 代替 \n
  10. RS 作用就是表示一个记录的结束
  11. FS 标志着每个区域的结束

    awk 的基本结构
    awk BEGIN{coms} /pattern/{coms} END{coms}
    开始模块,/找谁/{干啥},结束模块

  12. BEGIN 和END 模块只能有一个,BEGIN{}BEGIN{} 或者 END{}END{}
  13. 找谁干啥模块,可以有多个(例如:NR==2{print $1} NR==5{print $0})
    案例三:
    参数 RS,NR 举例
    Linux常用命令——awk
    Linux常用命令——awk
    说明:RS 为空值时,在行手打印输出记录号,并打印出每一行 $0 的内容
    正则表达式简单举例
    Linux常用命令——awk
    注意:$1~ 表示匹配第一列(第一个区域),o{1,2} 表示条件有一个或两个 o,{print NR,$1,NF} 表示打印 行号,第一列,最后一列
    案例四:
    使用 awk 取出对应的端口号、
    Linux常用命令——awk
    统计文件里面的空行数量
    Linux常用命令——awk
    new 文件里面,以空格为分隔符,区域 3 大于 15,有多少行
    Linux常用命令——awk
    Linux常用命令——awk
    Linux常用命令——awk
    使用 awk 实现 1 加到 100 的值
    Linux常用命令——awk

转载于:https://blog.51cto.com/12384628/2130109

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值