轻松玩转awk
awk的处理方式
awk一次处理一行内容
awk对每行可以进行切片处理
例如
awk -F ':' '{print $1}' /etc/password
-F指定每一行分割符号,这样就把被每行被:分割的第一个单词输出了
如果不指定默认是以空格作为分割的
awk的格式
awk [options] 'command' file
另外 command 还可以分为(正则表达式,逻辑判断式)和(awk操作命令)
command:pattern {awk操作命令}
对应上面的命令 指定分隔符 -F ':' 相当于 [options]
{print $1} 相当于command中的 awk操作命令
至于 patterrn 部分后面介绍
awk内置参数
NR: 每行的行号
NF:每行的字段数量(被分割成多少段)
FILENAME:操作的文件名
例如:
awk -F ':' '{print NR,NF}' /etc/passwd
输出:
1 7
2 7
3 7
4 7
......
......
40 7
41 7
42 7
43 7
44 7
可以看到 文件一共有44行
每一行被分割成 7段
这里的,相当于空格分割
awk中的if else语句
awk -F ':' '{if($3>100)print}' /etc/passwd
输出 uid大于100的行
(print不加参数可以输出一整行,或者print$0也可以输出一整行)
另外也可以用到 else语句
awk -F ':' '{if($3>100)print;else print"uid小于100"}' /etc/passwd
记得加分号
awk中的 parttern
还记的我们前面挖的坑吗,patterrn还没有介绍
逻辑判断式
awk -F ':' '$3>100{print}' /etc/passwd
正则表达式
awk中的正则可以匹配一行中的字段
awk -F ':' '$1~/^r/{print $1}' /etc/passwd
匹配第一个字段 以 r 开头的每一行,然后输出出来第一个字段
正则表达式要在 / /之间
要匹配的字段和正则之间要用 ~连接
如果不匹配固定的字段,像这样
awk -F ':' '{print $1}' /etc/passwd
这种匹配就会匹配整行
BEGIN END语法
awk [options] BEGIN{awk操作命令} 'command' END{awk操作命令} file
BEGIN 后面执行的 awk 操作命令在文件没有输入的时候就执行了(这个时候是不能输出文件名的)
一般做统计的时候 初始化变量,或者输出表头
END 后面执行的操作也是在读取完文件的每一行后才执行的
所以 END 和 BEGIN 都是不参与循环的
awk的数组
用awk统计 netstat -apn有多少 CONNET和多少LISTEN
netstat -apn|awk '$6~/CONNECTED|LISTEN/{sum[$6]++}END{for(i in sum)print i,sum[i]}'
输出:
LISTEN 6
CONNECTED 803
这里可以看到 awk 的数组更类似于 python 中的字典,可以通过对应的 键访问到对应的值
轻松玩转awk的更多相关文章
- 完整版的CAD技巧!3天轻松玩转CAD,零基础也能学会
最近有很多小伙伴反应,CAD图纸学起来有点小困难,也许你还没能掌握技巧,CAD大神带你3天轻松玩转CAD,零基础也能快速学会. 一.看懂图纸是关键 CAD制图首先得让自己知道要绘制什么,如果心中对图纸 ...
- 2021 .NET Conf China 主题分享之-轻松玩转.NET大规模版本升级
去年.NET Conf China 技术大会上,我给大家分享了主题<轻松玩转.NET大规模版本升级>,今天把具体分享的内容整理成一篇博客,供大家研究参考学习. 一.先说一下技术挑战和业务背 ...
- 干货: 可视化项目实战经验分享,轻松玩转 Bokeh (建议收藏)
作者 | Will Koehrsen 翻译 | Lemon 译文出品 | Python数据之道 (ID:PyDataRoad) 本文通过一个项目案例,详细的介绍了如何从 Bokeh 基础到构建 Bok ...
- 在KCloud上轻松“玩转”Docker
继CoreOS和Atomic镜像上线之后,刻通云紧跟Docker技术发展脚步,近期又推出了Ubuntu Core镜像,成为国内首家支持Ubuntu Core镜像的基础云服务商,同时也是国内唯一一家同时 ...
- CAP带你轻松玩转Asp.Net Core消息队列
CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Star),具有轻量级.易使用.高性能 ...
- 轻松玩转windows之redis实战
Redis是一个常用的键值对数据库.本篇分享一下如何轻松在睿江云上实现基于windows的redis开发环境. 1. 登录睿江云 点击右上角登录框 进入登录页面,输入账号密码登录 进入控制台, ...
- CAP带你轻松玩转ASP.NETCore消息队列
CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Start),具有轻量级.易使用.高性 ...
- 架构篇 | 带你轻松玩转 LAMP 网站架构平台(一)
作者 | JackTian 微信公众号 | 杰哥的IT之旅(ID:Jake_Internet) 转载请联系授权(微信ID:Hc220066)备注:来自博客园 1.什么是 LAMP 架构? LAMP 架 ...
- 轻松玩转jquery。
一.简介 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQuery产生的对象时jQuery独 ...
- Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式
1. 关于 Vim 补全模式 ---- Vim 一共提供了 15 种自动补全的模式(:help ins-completion).其中有两种的补全列表内容与另外两种相同,只是排序不同,这 15 种 ...
随机推荐
- BUUCTF Misc 被偷走的文件
首先下载文件打开 得到一个流量文件 用wireshark打开 打开后 进行分析 看到有ftp流量,于是过滤ftp 看到被偷走的是flag.rar 接下用binwalk进行分离 binwalk -e f ...
- Java语言(基础一)
Java语言 Java的特性和优势 简单性(简单易学) 面向对象(一种思想 万物皆对象) 可移植性(一次编写到处运行 JVM) 高性能(及时编译) 分布式(网络分布式url) 动态性(反射机制) 多线 ...
- KubePi主界面添加镜像仓库并授权给集群,供创建Deployment时选择镜像使用
1.添加kubeoperator自带的nexus仓库 2.添加harbor 3.把添加的镜像仓库授权给集群 4.关于镜像仓库secrets的有关说明 5.实际效果 6.从添加授权的镜像仓库创建工作负载 ...
- 为什么数字化转型离不开 MES 系统?
确切的说应该是制造业企业的数字化转型离不开MES系统,原因很简单,制造业企业的核心工作是生产制造,做数字化转型就是对生产制造各个环节进行数字化改造,提质增效降成本,而MES系统是制造执行系统,是生产制 ...
- SecureCRT登录centos日常操作
ssh登录客户端很多,个人还是习惯使用SecureCRT,非常快捷.简单.针对日常小伙伴经常咨询的常用操作简单记录如下: 建立ssh2连接,比较简单,填写服务器ip及对应的登录用户即可. 登录界面中文 ...
- SpringBoot+MyBatis Plus对Map中Date格式转换的处理
在 SpringBoot 项目中, 如何统一 JSON 格式化中的日期格式 问题 现在的关系型数据库例如PostgreSQL/MySQL, 都已经对 JSON 类型提供相当丰富的功能, 项目中对于不需 ...
- java的分页原理详解
首先先创建一个Student实体类. import java.io.Serializable; import java.util.Map; public class Student implement ...
- Java学习之路:流程控制
2022-10-11 10:58:41 前言 本文开始流程控制方面的学习,主要包括用户交互和流程控制语句,适合新手学习. 1 用户交互Scanner 1.1 Scanner对象 Java提供了一个可以 ...
- 银行ATM存取款系统(C语言实现)
这里使用的运行工具是DEV C++.老铁们一定要看仔细了.是DEV C++ 仅供借鉴:这个是大一时期写的.大四的时候整理了一下(本人C语言学的也不太好).肯定很多不足和存在漏洞的地方.仅供借鉴.仅供借 ...
- 齐博x1页面报数据表错误如何修复
如果服务器突然重启,很容易导致数据表损坏,那是因为有用户正在读取数据表,但服务器突然中断服务,就会报下类下面的错误. 大家凡是看到类似下面的错误,包含关键字 Table *** is marked a ...