Linux中三剑客命令-awk命令简单了解

作用的简单说明:

  • sed 命令擅长对文件的列做操作
  • sed 命令也擅长对统计分析数据信息

sed命令执行原理

在这里插入图片描述

  • 语法结构:awk [参数] ‘模式{动作}’ 文件信息 - - - 模式就是条件,动作就是指令(需要做什么操作)

三剑客awk常用操作

模板:
在这里插入图片描述

搜索指定条件查看行的列信息

  • 匹配指定信息行的单列信息:# awk '/Meng/{print $2}' test.txt - - - 显示文件内容中带有Meng 的行信息,显示第2列
    在这里插入图片描述
  • 匹配指定信息行的多列信息:# awk '/Meng/{print $2,$3,$4}' test.txt - - - 显示文件中带有Meng 的行信息,显示第2、3、4列
    在这里插入图片描述

结合分隔符

  • 匹配指定信息的行并显示第二次捐款信息:# awk -F "[ :]+" '/Meng/{print }' test.txt - - - 查看指定的的行,显示第二次的捐款信息
    参数:-F 用于合并分割符,后面写上分隔符的符号即可,后面的 + 加号,需要将多个连在一起的分隔符统一视为一个分隔符作用
    在这里插入图片描述

搜索指定列的信息

模板:
在这里插入图片描述

  • 我们需要找到Meng 的所有捐款信息,但是如果Zhangxiaoyu 帮 Meng 交了这个捐款的费用,再用上面的指定信息查找就会出现这种情况
    在这里插入图片描述
    对的,它乱掉了,所以我们要根据第一列的姓去找这个捐款人
    搜索指定列的信息:# awk '$1~/Meng/{print $4}' test.txt - - - $1 代表第1列,~ 表示匹配,匹配第1列信息Meng 的行,显示第4列的信息
    在这里插入图片描述
  • 搜索指定列以什么开头的信息:# awk '$3~/^91/{print $3,$4}' test.txt - - - 匹配显示第三列以 91 开头的行信息,显示 第3列 第4列
    在这里插入图片描述
  • 搜索指定列以什么结尾的信息:# awk '$2~/an$/{print $3,$4}' test.txt - - - 匹配显示第二列以 an 结尾的行信息,显示 第3列 第4列
    在这里插入图片描述

替换操作

  • 替换的格式:gsub(/替换信息/,“替换成什么信息”,$替换第几列)
  • 命令行格式:# awk '$2~/Xiaoyu/{gsub(/:/,"#",$4);print $0}' test.txt- - - 替换第2列中的有Xiaoyu的行,替换第4列的 :成 # ,显示整行
    在这里插入图片描述

三剑客高级命令

  • awk模式概念
    1. 基础模式:正则匹配 / 行号匹配 / 字符匹配

    2. 特殊模式:
      BEGIN:在处理文件之前先做的事情(也可以说是准备工作)
      用处:1. 将awk 做计算器使用,格式:awk 'BEGIN{print 计算内容+-*/}'

      1. 进行变量设置:awk 'BEGIN{info="12345";print info}'
        内置变量:
        NR:表示行号信息
        NF:表示字段信息(关于列)
        FS:表示分隔符字段信息(跟 -F 设置分隔符相等)

      END:在处理文件后要做的事情(后续工作)
      作用
      在这里插入图片描述

awk内的公式

  • 累加运算公式格式:# awk '$3~/8/{i=i+1;print i}' test.txt - - - 匹配第三列中出现过几次8 的字符,显示出来
    在这里插入图片描述
  • 求和运算公式格式:# awk '{i=i+$1}{print i}' test.txt
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值