Linux centos7 awk工具
一、awk介绍
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk含盖sed所有功能,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
二、awk上
1.截取文档中的某个片段
[root@davery ~]# mkdir awk 先创建一个awk
[root@davery ~]# cp /etc/passwd awk/0.txt
[root@davery ~]#
[root@davery ~]# cd awk
[root@davery awk]# head -n3 0.txt 显示前3行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $0}' $0比较特殊为截取整行或者
awk '{print $0}' 0.txt 无须指定分隔符
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $1}' 把0.txt前3行,第1个字段($1)显示出来
root
bin
daemon
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $2}' 把0.txt前3行,第2个字段($2)显示出来
x
x
x
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $3}' 把0.txt前3行,第3个字段($3)显示出来
0
1
2
[root@davery awk]# head -n2 0.txt |awk -F ':' '{print $6}' 把0.txt前2行,第6个字段($6)显示出来
/root
/bin
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $1"#"$2"#"$3"#"}' 可以自定义格式'{print $1"#"$2"#"$3"#"}'
root#x#0#
bin#x#1#
daemon#x#2#
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $1,$2,$3}' 把0.txt前3行,第1,2,3个字段($1,$2,$3)显示出来
root x 0
bin x 1
daemon x 2
[root@davery awk]#
2.匹配字符或者字符串(查找并显示)
[root@davery awk]# awk '/ro/' 0.txt 显示第一段含有ro的所有行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
[root@davery awk]# awk -F ':' '$1 ~/oo/' 0.txt ~代表匹配的意思,把0.txt里面第1个字段($1)含有oo的都显示出来
root:x:0:0:root:/root:/bin/bash
[root@davery awk]# awk -F ':' '$1 ~/ot/' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]# awk -F ':' '$1 ~/root/' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]#
[root@davery awk]# awk -F ':' '/root/ {print $1,$3} /test/ {print $1.$3}' 0.txt 匹配完root,然后再匹配test,支持多个表达式一起
root 0
operator 11
[root@davery awk]#
3.数学操作,==等于,>、>=、<、<=、!=
[root@davery awk]#awk -F ‘:’ '$3="0"' 0.txt
[root@davery awk]#awk -F ‘:’ '$3>="500"' 0.txt 加“”针对字符串
[root@davery awk]#awk -F ‘:’ '$3>=500' 0.txt 针对数字不需要“”
[root@davery awk]#awk -F ‘:’ '$7!="/sbin/nologin"' 0.txt
[root@davery awk]#awk -F ‘:’ '$3>$4' 0.txt
[root@davery awk]#awk -F ‘:’ '$3>$4 && $3<"7" '0.txt
[root@davery awk]#awk -F ‘:’ '$3>1000 || $7=="/bin/bash" 0.txt
二、awk下
awk内置变量,常用变量有OFS、NF、NR、-F 功能类似,用来定义分割符,作为输出时NF表示使用分隔符分隔后一共有多少段,NR表示行号。
[root@davery awk]#head -5 /etc/passwd |awk -F ':' '{OFS="#"} {print $1,$3,$4}'
[root@davery awk]# head -5 /etc/passwd |awk -F ':' '{OFS="#"} {print $1,$3,$4}'
root#0#0
bin#1#1
daemon#2#2
adm#3#4
lp#4#7
[root@davery awk]#
[root@davery awk]#awk -F ':' '{OFS="#"} {if ($3>1000) {printf $1,$2,$3,$4}}' 0.txt
uaer1user2user3user4user6[root@davery awk]#
[root@davery awk]# head -n3 /etc/passwd |awk -F ':' '{print NF}'
7
7
7
[root@davery awk]#
[root@davery awk]# head -n3 /etc/passwd |awk -F ':' '{print NR}'
1
2
3
[root@davery awk]#
[root@davery awk]#awk 'NR>40' 0.txt
[root@davery awk]#awk -F ':' 'NR<20 && $1 ~/root/' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]#head -n 3 /etc/passwd |awk -F ':' '$1="root"'
root x 0 0 root /root /bin/bash
root x 1 1 bin /bin /sbin/nologin
root x 2 2 daemon /sbin /sbin/nologin
[root@davery awk]#
[root@davery awk]#awk -F ':' '{(tot=tot+$3)}; END {print tot}' 0.txt
[root@davery awk]# awk -F ':' '{(tot=tot+$3)}; END {print tot}' 0.txt
8629
[root@davery awk]#
[root@davery awk]# awk -F ':' '{if($1=="root") {print $0}}' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]#
Linux centos7 awk工具的更多相关文章
- [转帖]Linux中awk工具的使用
Linux中awk工具的使用 2018年10月09日 17:26:20 谢公子 阅读数 2170更多 分类专栏: linux系统安全 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- linux中awk工具的使用(转)
add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...
- linux中awk工具的使用(转载)
awk是一个非常好用的数据处理工具.相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下: $ awk '条件类型1{动作1} 条件类型2{动作2} ...' ...
- linux中awk工具的使用
awk是一个非常好用的数据处理工具.相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下: $ awk '条件类型1{动作1} 条件类型2{动作2} ...' ...
- Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步
一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...
- linux中awk工具
awk sed以行为单位处理文件,awk比sed强的地方在于不仅能以行为单位还能以列为单位处理文件.awk缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab,但是行分隔符和列分隔符都可以自定义, ...
- Linux centos7 sed工具介绍
一.sed上 grep工具功能只能实现查找,不能把查找的内容替换. sed本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行查找.删除.替换字符或字符串.调换字符串位置.直接修改文件内容等 ...
- 性能工具之linux三剑客awk、grep、sed详解
前言 linux 有很多工具可以做文本处理,例如:sort, cut, split, join, paste, comm, uniq, column, rev, tac, tr, nl, pr, he ...
- 77个常用Linux命令和工具
77个常用Linux命令和工具 Linux管理员不能单靠GUI图形界面吃饭.这就是我们编辑这篇最实用Linux命令手册的原因.这个指南是特别为Linux管理员和系统管理员 设计的,汇集了最有用的一些工 ...
随机推荐
- 工具 - SDK安装
Why 在deepin linux上安装Java很头疼.. How 于是有了sdk man! https://sdkman.io/ sdk list java sdk install java < ...
- Google Earth Engine学习资源分享
最近在学习Google Earth Engine的使用,发现这个平台确实是一个非常好用.非常强大的平台.在GEE官网上找到了一些中文的学习资料,现在搬运过来分享给大家共同学习.教程分为两个部分 教程一 ...
- 复变函数知识总结(2)——Cauchy理论
复变函数知识总结(2)——Cauchy理论 版本:2020-01-01 此版本不是最终版本,还有后续的补充和更新. 如有错误请指出,转载时请注明出处! page1 page2 page3 page4 ...
- 一个arctan积分的两种解法
\[\Large\int_{0}^{1}\frac{\arctan x}{\sqrt{1-x^{2}}}\mathrm{d}x\] \(\Large\mathbf{Solution:}\) 首先第一种 ...
- Educational Codeforces Round 82 C. Perfect Keyboard
Polycarp wants to assemble his own keyboard. Layouts with multiple rows are too complicated for him ...
- Nginx禁止使用ip访问,只允许使用域名访问
Nginx虚拟主机配置,vhosts下面有很多域名的配置: [root@external-lb01 vhosts]# pwd/data/nginx/conf/vhosts [root@external ...
- vs下载为0的问题
问题描述:win10 下无法安装VS2017,visual studio installer下载进度始终为0,点击取消按钮后,也没有反应,visual studio installer也关闭不掉: 具 ...
- 投资人分享答疑----HHR计划----以太直播课第三课
分享大纲:(祥峰投资) 一,投资人会看什么: 1,赛道定位:“生意”还是“独角兽-to be”? 2,如何退出?上市还是收购? 3, 团队能力,愿景力 4,壁垒:数据和价值 5,价格 二,融资需要准 ...
- Apache Shiro安全(权限框架)学习笔记一
1. 授权需要继承 AuthorizingRealm 类, 并实现其 doGetAuthorizationInfo 方法 2. AuthorizingRealm 类继承自 Authenticating ...
- MySQL之innodb和myisam的区别
innodb和myisam的区别: MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型, .frm文件存储表定义, 数据文件的扩展名为.MYD, 索引文件的扩展名是 ...