• 【Linux篇】--awk的使用


    一、前述

    awk是一个强大的文本分析工具。相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。
    简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。

    二、具体

    1、基础知识点

    awk -F '{pattern + action}' {filenames}
    支持自定义分隔符
    支持正则表达式匹配
    支持自定义变量,数组  a[1]  a[tom]  map(key)
    支持内置变量
    ARGC               命令行参数个数
    ARGV               命令行参数排列
    ENVIRON            支持队列中系统环境变量的使用
    FILENAME           awk浏览的文件名
    FNR                浏览文件的记录数
    FS                 设置输入域分隔符,等价于命令行 -F选项
    NF                 浏览记录的域的个数
    NR                 已读的记录数
    OFS                输出域分隔符
    ORS                输出记录分隔符
    RS                 控制记录分隔符
    支持函数
    print、split、substr、sub、gsub
    支持流程控制语句,类C语言
    if、while、do/while、for、break、continue

    $0表示所有域, $1表示第一个域, $n表示第n个域。 默认域分隔符是空格键或tab键。
    2、举例

    只是显示/etc/passwd的账户:CUT
    awk -F':' '{print $1}' passwd
    只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行开始前添加列名name,shell,在最后一行添加"blue,/bin/nosh"(cut,sed)
    awk -F':' 'BEGIN{print "name,shell"} {print $1 "," $7} END{print "blue,/bin/nosh"}' passwd
    搜索/etc/passwd有root关键字的所有行
    awk  '/root/ { print $0}'   passwd
    统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容

    xxx     Math English C++  Experiment
    Monkey  100   90     95   Good
    Cat     80    100    60   Perfect
    Dog     90    60     70   Great
    Tiger   95    85     90   Fantastic
        Administrator@51B6904C3C8A485 ~/learn_awk  
        $ awk '{print $2}' test.txt  
        Math  
        100  
        80  
        90  
        95  
          
        Administrator@51B6904C3C8A485 ~/learn_awk  
        $  

     看这篇博客吧 ,讲得很好https://blog.csdn.net/stpeace/article/details/46848873

  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/LHWorldBlog/p/8733847.html
Copyright © 2020-2023  润新知