AWK工具的用法
基本格式
awk '{commands}' filename
或者
stdin | awk '{commands}'
以下,均简写为awk '{commands}'的形式
commands的用法
commands逐行作用于文本流
- $1当前行第一列数据,$NF最后列,$(NF-1)即倒数第二列
awk '{print $(NF-1)}'
# 补充说明:
$0 当前行所有列
NR 当前行号
NF 当前行字段数
- print默认结尾换行;printf不换行
awk '{printf $1}'
- 多条语句以分号间隔
awk '{printf $1; print $(NF-1)}'
- 多个参数以逗号间隔,打印后以空格间隔
awk '{print $1, $2, $3}'
- 空格会被忽略不计
awk '{print $1 $2}'
打印结果这两个参数会被[字符拼接]
- 双引号拼接字符
awk '{print $1 ":" $2}'
打印结果是这两个参数用冒号连接
# 补充说明
外层的单引号也可以用双引号,
此时内层拼接用单引号
- 通过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 ""
}'
- 通过条件判断执行打印
方法一: 条件操作语句(和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行的所有值
- BEGIN和END
awk 'BEGIN{ i=0 } /CrowdApp/ {print $0;i++} END{print $i}'
# 补充说明
BEGIN在执行awk所有命令前先执行一次;
patterns内的command每一行都会执行一次;
END只有在执行完所有语句后执行一次。
- awk参数传递
方法一:
awk -v var=$pwd '{print var}'
方法二:
awk '{print v1, v2}' v1=$VAR1, v2=$VAR2
- 指定字段分隔符
awk -F: '{print $NF}'
默认以空格分割各个字段;此时指定冒号分割
AWK工具的用法的更多相关文章
- shell脚本 awk工具
awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...
- linux中awk工具的使用(转)
add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...
- [转帖]Linux中awk工具的使用
Linux中awk工具的使用 2018年10月09日 17:26:20 谢公子 阅读数 2170更多 分类专栏: linux系统安全 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- Linux截屏工具scrot用法详细介绍
Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用. 在Linux中安装Scrot ...
- awk 的一些用法
awk,我觉得是Linux里面处理文本最精妙的命令,它是一个行处理的命令,它最初级的用法是:给定一些简单的pattern,然后按照这个pattern 去搜索匹配的行.它的高级用法是用awk来编程,除了 ...
- Apache自带压力测试工具ab用法简介
ab命令原理 ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL进行访问.它的测试目标是基于URL的,因此,既可以用来测试Apache的负载压力,也可以测试nginx.lighthttp ...
- Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解
Mysql优化_慢查询开启说明及Mysql慢查询分析工具mysqldumpslow用法讲解 Mysql慢查询开启 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应 ...
- Shellz中awk的简单用法
其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...
- Java 代码规范,你应该知道的一些工具和用法(转)
转自:http://yifeng.studio/2017/06/30/coding-with-code-style/ Java 代码规范,你应该知道的一些工具和用法 2017-06-30 从事编程这个 ...
随机推荐
- 从0开始学Python---01
1.开始 Vim test.py #!/usr/bin/python print "hello,world!"; chmod +x test.py ./test.py 2.基本知 ...
- CxGrid鼠标移到更改颜色
CxGrid鼠标移到更改颜色 设置表单中TcxGrid1DBTableView的Styles属性,设置Selection procedure TForm1.cxGrid1DBTableView1Mou ...
- Linux-IO重定向与管道
1. 输入与输出 标准输入 STDIN 文件描述符:0,默认:键盘输入 标准输出 STDOUT 文件描述符:1,默认:屏幕输出 错误输出 STDERR 文件描述符:2,默认:屏幕输出 2. 标准输出重 ...
- VS2010的快捷键乱
vs2010的快捷键乱了,点击回车会出现属性窗口,点击退格键会相当于编辑里面的撤销功能 点击ctrl+s会出现sharepoint窗口,在网上找了一个解决方式(很难找),原问在这: http://q. ...
- C# webservice服务跟踪调试方法(转)
1.新建网站,添加服务,并创建服务. 2.打开internet 信息服务管理器,添加网站,映射到创建的服务所在网站的目录. 3.打开服务所在网站的解决方案,进行配置. 1) 设置启动选项 选择启动操作 ...
- Page_Load是怎样被执行的
关于Asp.Net的生命周期的文章,很多很多,不管是管道生命周期,还是页面生命周期,图文并茂的文章并不少,我就不说了,我只是在复习这些知识点的时候,想具体知道一个页面的Page_Load方法到底是怎么 ...
- Button去除边框方法
<Button Content="Button" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey} ...
- DDD Code First 迁移数据实现EF CORE的软删除,值对象迁移配置
感谢Jeffcky大佬的博客: EntityFramework Core 2.0全局过滤 (HasQueryFilter) https://www.cnblogs.com/CreateMyself/p ...
- #loj3089 [BJOI2019]奥术神杖
卡精度好题 最关键的一步是几何平均数的\(ln\)等于所有数字取\(ln\)后的算术平均值 那么现在就变成了一个很裸的01分数规划问题,一个通用的思路就是二分答案 现在来考虑二分答案的底层怎么写 把所 ...
- word2vec的原理(一)
最近上了公司的新员工基础培训课,又对NLP重新产生的兴趣.NLP的第一步大家知道的就是不停的写正则,那个以前学的还可以就不看了.接着就是我们在把NLP的词料在传入神经网络之前的一个预处理,最经典的就是 ...