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管理员和系统管理员 设计的,汇集了最有用的一些工 ...
随机推荐
- Java连载81-枚举类型,生成五个不重复的随机数,集合简介
一.枚举类型 1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子. package com.bjpowernode.java_learning; public class D81_1_ ...
- Python爬虫:requests模块的基本使用
官方文档:https://requests.readthedocs.io/zh_CN/latest/ 基本使用 基本结构 发送请求,获取响应:r = requests.get(url) 爬取网页的通用 ...
- 【代码审计】VAuditDemo 命令注入漏洞
一般PHP中可以使用下列函数来执行外部的应用程序或命令 system() exec() passthru() shell_exec() 跟踪$cmd --> 跟进$target,发现传递给tar ...
- 关于ASA的TCP MSS
About the TCP MSS The TCP maximum segment size (MSS) is the size of the TCP payload before any TCP a ...
- Python版GPA计算器
最近在网申投简历时遇到一个需要计算GPA的问题,想起自己在上学时写的Excel公式版GPA计算器略显low,而且操作也比较复杂,于是一时兴起,写了个Python版的,在此分享给大家,也算是跟上时代的浪 ...
- dp-捡金币
来源:牛客网 题目描述 最近,奶牛们热衷于把金币包在面粉里,然后把它们烤成馅饼.第i块馅饼中含有Ni(1<=Ni<=25)块金币,并且,这个数字被醒目地标记在馅饼表面. 奶牛们把所有烤 ...
- centos无法启动之fstab
你可能由于对磁盘管理,修改了/etc/fstab文件,进行自动挂载,但是卸载磁盘后,忘记修改/etc/fstab文件,导致了如下启动linux错误,开启进入紧急模式 error getting aut ...
- maven搭建ssm 完整过程
https://blog.csdn.net/qq_28008917/article/details/79755935
- FastDFS文件上传和下载流程
文件上传流程 客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文件的索引信息.文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名. 组名:文件上传后所在的 ...
- Spring中@MapperScan注解
之前是,直接在Mapper类上面添加注解@Mapper,这种方式要求每一个mapper类都需要添加此注解,麻烦. 通过使用@MapperScan可以指定要扫描的Mapper类的包的路径,比如: @Sp ...