基本格式

awk '{commands}' filename

或者

stdin | awk '{commands}'

以下,均简写为awk '{commands}'的形式

commands的用法

commands逐行作用于文本流

  1. $1当前行第一列数据,$NF最后列,$(NF-1)即倒数第二列
awk '{print $(NF-1)}'
# 补充说明:
$0 当前行所有列
NR 当前行号
NF 当前行字段数
  1. print默认结尾换行;printf不换行
awk '{printf $1}'
  1. 多条语句以分号间隔
awk '{printf $1; print $(NF-1)}'
  1. 多个参数以逗号间隔,打印后以空格间隔
awk '{print $1, $2, $3}'
  1. 空格会被忽略不计
awk '{print $1 $2}'
打印结果这两个参数会被[字符拼接]
  1. 双引号拼接字符
awk '{print $1 ":" $2}'
打印结果是这两个参数用冒号连接
# 补充说明
外层的单引号也可以用双引号,
此时内层拼接用单引号
  1. 通过for循环打印范围列
awk '{for(i=9;i<NF;i++) printf $i"\t"; print ""}'
以分号制造了两个语句
1. 循环语句仅作用于紧跟着的打印语句
2. 循环完成后执行print语句换行 # 补充说明
如果for循环内有多条语句,必须使用大括号括起来:
awk '{
for(i=9;i<NF;i++){
printf $i; #此处分号不可以省略
print "\t"
}; #此处分号可以省略
print ""; #此处分号不可以省略
print ""
}'
  1. 通过条件判断执行打印
方法一: 条件操作语句(和for循环用法一致)
awk '{if($9>=100 && $10>=50)printf $9;print ""}'
使用多条语句:
awk '{
if($9>=100 && $10>=50){
printf $9;
printf "\t"$10
}
else if($9<100 && $10 >=50){
printf "$10"
}
else{
print "it\'s ok"
}
}'
方法二: 条件模式
awk自带三个条件模式:前面讲的所有均为中间的commands:
awk 'BEGIN {COMMANDS1} pattern {commands} END {COMMANDS2}' 实例: awk '$9>=100||$10>=2{print $9"\t"$10}'
第九列值大于100且第十列值大于2时,打印这两个值 awk '!/CrowdApp/ && $9>=50 {print $9"\t"$10}'
包含CrowdApp字段,且第九个字段大于50时,打印xxx awk 'NR==5,NR==10{print $0}'
打印5-10行的所有值
  1. BEGIN和END
awk 'BEGIN{ i=0 } /CrowdApp/ {print $0;i++} END{print $i}'

# 补充说明
BEGIN在执行awk所有命令前先执行一次;
patterns内的command每一行都会执行一次;
END只有在执行完所有语句后执行一次。
  1. awk参数传递
方法一:
awk -v var=$pwd '{print var}'
方法二:
awk '{print v1, v2}' v1=$VAR1, v2=$VAR2
  1. 指定字段分隔符
awk -F: '{print $NF}'
默认以空格分割各个字段;此时指定冒号分割

AWK工具的用法的更多相关文章

  1. shell脚本 awk工具

    awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...

  2. linux中awk工具的使用(转)

    add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...

  3. [转帖]Linux中awk工具的使用

    Linux中awk工具的使用 2018年10月09日 17:26:20 谢公子 阅读数 2170更多 分类专栏: linux系统安全   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...

  4. Linux截屏工具scrot用法详细介绍

    Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用.   在Linux中安装Scrot ...

  5. awk 的一些用法

    awk,我觉得是Linux里面处理文本最精妙的命令,它是一个行处理的命令,它最初级的用法是:给定一些简单的pattern,然后按照这个pattern 去搜索匹配的行.它的高级用法是用awk来编程,除了 ...

  6. Apache自带压力测试工具ab用法简介

    ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...

  7. Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解

    Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解   Mysql慢查询开启 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应 ...

  8. Shellz中awk的简单用法

    其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...

  9. Java 代码规范,你应该知道的一些工具和用法(转)

    转自:http://yifeng.studio/2017/06/30/coding-with-code-style/ Java 代码规范,你应该知道的一些工具和用法 2017-06-30 从事编程这个 ...

随机推荐

  1. Python 高级编程——单例模式

    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. 在 Py ...

  2. c# 数据写入三菱PLC

    public void Data_Write_Value(int[] m_write_data)        {            int lSize = 2; string[] Address ...

  3. Winform生成安装程序时配置自启动

    1.右击安装编辑程序,在“视图”菜单中,选择“注册表”. 2.创建“键”:HKCU\Software\Microsoft\Windows\CurrentVersion\Run 3.右键Run,新建“字 ...

  4. CefSharp 支持mp4

    效果图: 下载链接:创建wpf项目引用 如下:链接:链接: https://pan.baidu.com/s/1UCJmslLPSDph7VrYhXM9gw 密码: j3n4 链接: https://p ...

  5. 解决SHAREJPOINT 跨域问题

    目前仅支持IE7/8不支持IE11和谷歌 对于跨域情况,目前找到如果jquery是get获取方式,可以配置web.config相关属性,具体powershell命令如下: Add-PSSnapin M ...

  6. MQ的demo

    public class WorkTest {  @Test  public void send() throws Exception{    //获取连接    Connection conn = ...

  7. 配置文件springmvc.xml

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. Python3.5 学习十七

    jQuery 模块=类库 jQuery就是DOM .BOM.Javascript的封装成的类库 一.查找元素.DOM只有10种左右选择器 jQuery有很多选择器和筛选器 PS:jQuery 推荐1系 ...

  9. web端权限维持【好文】

    前言 关于权限维持,我之前写过一篇基于系统端的后门技术文章,如映像劫持啊,lpk之类. 内容目录: - 构造文件包含漏洞- 隐蔽性脚本木马- 构造sql注入点 正文 0x01 构造文件包含漏洞 > ...

  10. C#6.0语言规范(五) 变量

    变量代表存储位置.每个变量都有一个类型,用于确定可以在变量中存储的值.C#是一种类型安全的语言,C#编译器保证存储在变量中的值始终是适当的类型.可以通过赋值或使用++和--运算符来更改变量的值. 必须 ...