获取中...

-

Just a minute...

awk 是一款极其强大的文本处理工具,其语言于c语言的语法极其相似,上手很容易
内置变量与运算符数据来自RUNOOB

  • 简单用法

    1
    2
    awk [参数] 'awk代码'
    awk [参数] -f awk脚本文件
  • 常用参数

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    cat xxx.txt | awk -F ':' 'BEGIN{}{printf("%s %s", $1, $2);}END{printf("OK!");}'
    # -F 参数是指定对每行字符串以什么字符为分割,每个被分割的部分存储在变量:$1, $2, $3...中,整行字符串存储在$0中。
    # BEGIN{}中的代码将在文本处理前执行,同样,END{}会文本处理后执行,{}中的代码用来处理每行的文本。

    cat xxx.txt | awk -v var1=${tmp} '{printf("%d\n", $3/var1);}'
    # -v 参数是引入外部变量,把${tmp}赋值给var1,在awk内部代码中就可以使用var1了。
    # -v参数可以多次引用,也就是说可以引入多个变量。

    cat xxx | awk -v var1=${tmp} '{
    if ($1 ~ /eth/) {
    print $0;
    }
    }'
    # 通过这种方式可以使用正则表达式进行字符串匹配。
    # awk支持print,使用print末尾自动加上\n。
  • 内置变量

变量 描述
$n 当前记录的第n个字段,字段间由FS分隔
$0 完整的输入记录
ARGC 命令行参数的数目
ARGIND 命令行中当前文件的位置(从0开始算)
ARGV 包含命令行参数的数组
CONVFMT 数字转换格式(默认值为%.6g)ENVIRON环境变量关联数组
ERRNO 最后一个系统错误的描述
FIELDWIDTHS 字段宽度列表(用空格键分隔)
FILENAME 当前文件名
FNR 各文件分别计数的行号
FS 字段分隔符(默认是任何空格)
IGNORECASE 如果为真,则进行忽略大小写的匹配
NF 一条记录的字段的数目
NR 已经读出的记录数,就是行号,从1开始
OFMT 数字的输出格式(默认值是%.6g)
OFS 输出记录分隔符(输出换行符),输出时用指定的符号代替换行符
ORS 输出记录分隔符(默认值是一个换行符)
RLENGTH 由match函数所匹配的字符串的长度
RS 记录分隔符(默认是一个换行符)
RSTART 由match函数所匹配的字符串的第一个位置
SUBSEP 数组下标分隔符(默认值是/034)
  • 运算符
运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C条件表达式
|| 逻辑或
&& 逻辑与
~ 和 !~ 匹配正则表达式和不匹配正则表达式
< <= > >= != == 关系运算符
空格 连接
+ - 加,减
* / % 乘,除与求余
+ - ! 一元加,减和逻辑非
^ *** 求幂
++ – 增加或减少,作为前缀或后缀
$ 字段引用
in 数组成员
相关文章
评论
分享
  • 八大排序算法总结

    直接插入排序算法 概述直接插入排序算法在逻辑上将整体数据分为两部分,一部分是已排序部分,另一部分是待排序部分 。排序的过程是:在待排序部分逐步的拿出一个元素,将其插入到已排序部分中合理的位置 。 适用场景插入排序在对几乎已经排好序的数...

    八大排序算法总结
  • hexo低成本搭建静态网页博客

    引言好多同学有写博客的习惯,也有各大例如csd、简等博客平台。但是这些平台毕竟是盈利平台,无法做到对自己的博客完全掌控,有一丝丝的不爽快。想要DIY一下几乎不可能。在这里推荐同学们自己动手丰衣足食。 准备知识 github最基本的使用...

    hexo低成本搭建静态网页博客
  • 进程、线程及共享内存学习笔记

    进程、线程及共享内存学习笔记 系统环境:deepin Linux,语言环境:Linux C欢迎大家转载,转载请注明出处,谢谢! 理论基础: 进程:计算机上每个执行的活动,运行一个可执行程序是一个进程,打开一个软件是一个进程,打开...

    进程、线程及共享内存学习笔记
  • Linux常见配置文件

    转载自CoderZhuang,对CoderZhuang先生的博客进行补充和整理。 /etc 配置文件 /etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、家目录、加密口令和用户的其他信息 /etc/group ...

    Linux常见配置文件
  • deepin系统使用笔记

    如果你是小白用户并且没有人在旁边指导,那么建议不要自行更改本文给出的命令。 图形界面相关的东西自行探索。 deepin系统安装后推荐配置sudo apt-get install -y git wget curl openssh...

    deepin系统使用笔记
  • linux三剑客之grep的使用

    部分内容源自网络和grep帮助信息。 用法1grep [参数选项] [模式串] [文件或目录] 常用参数选项说明 -o只显示与模式串匹配的内容。 -E 使用扩展正则表达式。 栗子: 1cat index.html | gr...

    linux三剑客之grep的使用
  • MYSQL-笔记1

    在MYSQL中查询操作涉及内容 [TOC] function 对待查询字段在待查找表中出现的若干记录中的函数参数中指定的字段进行某些操作。 COUNT : 统计 SUM : 求和 AVG : 平均数 more abo...

    MYSQL-笔记1
  • BASH杂记

    BASH杂记
  • HDU-1276

    题目描述 某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开...

    HDU-1276
  • CPU信息获取

    准备知识 /proc文件系统是一个伪文件系统,该文件系统中存储着内核控制相关信息,通俗点说就是这个目录是虚拟的,它受内核直接控制,存储与内核控制相关的数据,与其他目录不同的是/proc目录不是真实存储在硬盘中的,它的数据存储在内存...

    CPU信息获取
Please check the parameter of comment in config.yml of hexo-theme-Annie!