美文网首页
三剑客命令之awk 初体验

三剑客命令之awk 初体验

作者: 张新雨有点胖噢 | 来源:发表于2019-07-25 08:27 被阅读0次

awk概念

awk即可进行模式扫描 也是一种处理文件语言
擅长对列的处理能做到排除,查询,替换,统计信息

awk语法:awk 参数 '模式{动作} 文件'
参数:
-F指定分割符号 awk -F "[: ]+"定义:和空格为串联的分隔符
-v指定变量 -v "i=10"awk命令调用命令时不用1添加任何符号

  1. 符号意义:
    $n 匹配第n列信息
    $0代表所有列
    $NF代表最后一列
    $n~/xxx/匹配第n列xx字符串信息
    ;分开处理不同任务
    取反
    " " 代表空格 其中可插入内容
    ~在awk中代表匹配后方信息
    , 代表空格
  2. 动作
    print输出指定内容
    gsub 替换指定内容
  3. 内置变量
    NR==n匹配n行
    NR==n,NR==m 匹配n-m行
    NR<或>n显示n+或n-行
    NR==n:NR==m匹配n和m行
    FS=[; ]修改分隔符 和-v配合使用
  4. 命令模式
    BEGIN 处理文件前,执行什么动作
    awk 'BEGIN{动作}{动一动} 文件'
    END 处理文件后,执行什么动作
    awk '/匹配信息/{i=i+1}END{print i}' 文件地址
  5. 运算用公式
    i=i+1或i++计算匹配内容个数
    awk '/匹配信息/{i=i+1}END{print i}' 文件地址
    i=i+$n文件求和运算公式
    '{x=x+$}END{print x}'

awk实际应用

环境

[root@zin ~]# cat reg.txt 
Zhang  Dandan    41117397    :250:100:175
Zhang  Xiaoyu    390320151   :155:90:201
Meng   Feixue    80042789    :250:60:50
Wu     Waiwai    70271111    :250:80:75
Liu    Bingbing  41117483    :250:100:175
Wang   Xiaoai    3515064655  :50:95:135
Zi     Gege      1986787350  :250:168:200
Li     Youjiu    918391635   :175:75:300
Lao    Nanhai    918391635   :250:100:175

实际操作参考

01. 显示xiaoyu的姓氏和ID号码
[root@zin ~]# awk '$2~/Xiaoyu/{print $1,$3}' reg.txt 
Zhang 390320151

02. 姓氏是zhang的人,显示他的第二次捐款金额及他的名字
[root@zin ~]# awk -F "[: ]+" '$1~/Zhang/{print$1,$2,$5 }' reg.txt 
Zhang Dandan 100
Zhang Xiaoyu 90

03. 显示Xiaoyu的捐款,每个时都有以$开头, 如$110$220$330
[root@zin ~]# awk '{gsub(/:/,"$",$4)}$2~/Xiaoyu/{print $4}' reg.txt 
$155$90$201

相关文章

网友评论

      本文标题:三剑客命令之awk 初体验

      本文链接:https://www.haomeiwen.com/subject/qruhrctx.html