美文网首页Shell
shell awk基本使用

shell awk基本使用

作者: 不ji的石头 | 来源:发表于2021-12-06 19:38 被阅读0次
    • awk

    1.介绍:

    基于模式匹配检查输入文本,逐行处理并且输出

    通常用在shell脚本中获取指定的数据

    单独使用时,可以对文本数据做统计

    2.基础语法

    格式1:命令 | awk [选项] '[条件]{指令(多个指令可以用;分割)}'

    格式2:awk [选项] '[条件]{指令}' 文件

    例如:awk '{print 1,3}' fileName //打印fileName的所有行的第1和第3列,因为没有条件所有扫描所有行

    awk内置变量

    FS //保存或者设置字段分隔符,例如FS=":", 与-F功能一样

    $n //第n列,n为0时表示整行

    NF //记录当前处理行的字段个数(列数)

    NR //记录当前已经读入行的数量(行数)

    过滤时机:BEGIN{} {} END{}

    3.常用选项

    -F //可以指定分隔符(分割列),默认的分隔符为空格和Tab键。-F: 分隔符为:

    4.条件表达式:

    正则表达式

    还可以匹配列,例如:awk -F: '3!~/bash/{print 1,7}' file //匹配第3列不是bash结尾的行 (~为匹配 !~为不匹配)

    数值/字符比较

    == != > >= < <= && | //例如:awk 'NR==2' file //打印行号为2的

    5. awk流程控制语法:awk '{if(条件){条件满足执行}else{}}' //if必须在{}内

    例如:awk '{if{NR==3}{print NR}else{print "hello"}}'

    6. awk for循环:

    例如:awk 'BEGIN{for(i=1;i<5;i++) {print i}}'

    7. awk数组的定义与使用

    定义:数组名[下标]=元素值 //下标可以为字母什么的,有点像map

    调用:数组名[下标]

    遍历:for(变量名 in 数组名){print 数组名[变量]} //无序打印

    相关文章

      网友评论

        本文标题:shell awk基本使用

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