awk命令入门
什么是awk?
AWK是一个强大的文本处理工具。可以使用awk读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
使用awk的基本格式
awk [options] ‘command’ file(s)
command 由pattern和action两部分组成
command 的格式 为 pattern {action}
1. pattern可以是正则表达式或者关系表达式
2. action 包含两部分:
(1). 内置函数
print printf getline 等
(2). 控制指令
if else while
awk options配置选项
- -F filed-separator(分割符,默认为空格)
例子:
#打印所有用户的用户名、UID、GID
#内置变量$1 $3 $4的使用可以参考下面的awk内置变量的说明及
awk -F ':' '{printf "USER:%-20s UID:%10i GID:%10i\n",$1,$3,$4}' /etc/passwd
awk内置变量
- $0: 表示当前行
- $1: 表示每行的第一个字段
- $2: 表示每行的第二个字段
- ….
- *$n: 表示每行的第三个字段
- NR: 每行的行号
- NF: 每行的字段数
例子:
#在上一个例子的基础上添加行号、文件名、字段数
awk -F ':' '{printf "LineNUmber:%5i | USER:%-20s | UID:%10i | GID:%10i | FILENAME:%10s|NF:%10i\n",NR,$1,$3,$4,FILENAME,NF}' /etc/passwd
awk逻辑判断式
awk 中的逻辑判断式可以是正则表达式或者关系表达式
~,!~:正则表达式
例子: 打印m开头的用户名
$awk -F ':' '$1~/^m.*/{print $1}' /etc/passwd
对正则表达式取反,输出正则表达式匹配行的补集
$awk -F ':' '$1!~/^m.*/{print $1}' /etc/passwd
==,!=,<,>: 逻辑表达式
例子: 判断UID的大小,输出UID大于100的用户名和UID
$awk -F ':' '$3>100{print $1,$3}' /etc/passwd
例子:输出UID不等于100的用户名和UID
$awk -F ':' '$3 != 100{print $1,$3}' /etc/passwd
awk BEGIN代码块、END代码块
BEGIN{command1}pattern{command2}END{command3}
例子 :在开始添加表头,在结尾添加表尾
awk -F ':' 'BEGIN{print "LineNum TotalColNum User UID"}{print NR,NF,$1,$3}END{print "-----"FILENAME"---------"}' /etc/passwd
awk使用实例
- 统计当前目录文件总和
ls -l|awk 'BEGIN{size=0}{size+=$5}END{print "size is "size/1024/1024"M"}'
- 统计用户数
awk -F ':' 'BEGIN{count=0}$1!~/^$/{count++}END{print " count = "count}' /etc/passwd
- 输出UID大于100的用户名以及在输出的行集合中的行号
awk -F ':' 'BEGIN{count=0}{if ($3 >100 ) name[count++]=$1}END{ for (i=0;i<count;i++) print i,name[i]}' /etc/passwd
- 统计每种网络状态的连接的数量
netstat -anp | awk '$6~/CONNECTED|LISTEN/{sum[$6]++}END{for (i in sum) print i,sum[i]}'
awk命令入门的更多相关文章
- Linux Shell脚本入门--awk命令详解
简单使用: awk :对于文件中一行行的独处来执行操作 . awk -F :'{print $1,$4}' :使用‘:’来分割这一行,把这一行的第一第四个域打印出来 . 详细介绍: AWK命令介绍 ...
- awk 命令使用入门
Linux 下处理和分析文本文件内容,AWK 命令是一个强有力的工具.特别是文件内容是以行和列的形式排版的时候,AWK 就是命令行界的 Excel 啊! 简单的 awk 命令可以直接在命令行中使用,复 ...
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- AWK命令学习
使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...
- awk 命令
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- [Linux] linux awk命令详解
reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...
- awk命令简单介绍
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- Linux的awk命令
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- awk命令--update20150120
简介 awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分隔符分割成field,切开的部分再进行各种分析处理. 模式和动作: 任何awk语句都是由模式和动作组成,模式部分决定动作语句何时触发 ...
随机推荐
- 最强常用开发库总结 - JSON库详解
最强常用开发库总结 - JSON库详解 JSON应用非常广泛,对于Java常用的JSON库要完全掌握.@pdai JSON简介 JSON是什么 JSON 指的是 JavaScript 对象表示法(Ja ...
- 【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)
前面三小节,介绍了PCIE的基本知识和概念,以及扫描流程.在不求甚解的情况下,我想各位小伙伴应该对PCIE有了个宏观的认识,OK,那么本章我们在之前的基础上,再单独把一些概念和更深层次的问题摘出来具体 ...
- java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executors线程池
上期回顾: 上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁.非公平锁的.内部的双向链表到底是什么意思,prev和next到底是什么,为什 ...
- P4513 小白逛公园 动态维护最大子段和
题目链接:https://www.luogu.org/problem/P4513 #include<iostream> #include<cstdio> #include< ...
- Window下安装并使用InfluxDB可视化工具 —— InfluxDBStudio
下载 直接访问: https://github.com/CymaticLabs/InfluxDBStudio/releases/tag/v0.2.0-beta.1 创建or编辑InfluxDB 这个软 ...
- linux 安装virtualbox5.2
一.安装 1.下载package https://www.virtualbox.org/wiki/Linux_Downloads 2.添加源. $ cat /etc/lsb-release DISTR ...
- C#异常处理总结
Exception类分析 常见的异常类 异常捕获 异常处理原则和建议 SystemException类继承Exception,前者是System命名空间中所有其他异常类的基类,在捕获异常的时候,我首先 ...
- Java容器解析系列(17) LruCache详解
在之前讲LinkedHashMap的时候,我们说起可以用来实现LRU(least recent used)算法,接下来我看一下其中的一个具体实现-----android sdk 中的LruCache. ...
- springboot中的那些连接池
hello~各位读者新年好! 回想起前几天在部署springboot项目到正线时,线上环境要求jdk7,可项目是基于jdk8开发的,springboot也是用的springboot2以上的版本,可以说 ...
- 小白学Java:I/O流
目录 小白学Java:I/O流 基本分类 发展史 文件字符流 输出的基本结构 流中的异常处理 异常处理新方式 读取的基本结构 运用输入与输出 文件字节流 缓冲流 字符缓冲流 装饰设计模式 转换流(适配 ...