【Linux篇】--awk的使用
一、前述
awk是一个强大的文本分析工具。相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。
简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。
二、具体
1、基础知识点
awk -F '{pattern + action}' {filenames}
支持自定义分隔符
支持正则表达式匹配
支持自定义变量,数组 a[1] a[tom] map(key)
支持内置变量
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
支持函数
print、split、substr、sub、gsub
支持流程控制语句,类C语言
if、while、do/while、for、break、continue
$0表示所有域, $1表示第一个域, $n表示第n个域。 默认域分隔符是空格键或tab键。
2、举例
只是显示/etc/passwd的账户:CUT
awk -F':' '{print $1}' passwd
只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行开始前添加列名name,shell,在最后一行添加"blue,/bin/nosh"(cut,sed)
awk -F':' 'BEGIN{print "name,shell"} {print $1 "," $7} END{print "blue,/bin/nosh"}' passwd
搜索/etc/passwd有root关键字的所有行
awk '/root/ { print $0}' passwd
统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容
xxx Math English C++ Experiment
Monkey 100 90 95 Good
Cat 80 100 60 Perfect
Dog 90 60 70 Great
Tiger 95 85 90 Fantastic
Administrator@51B6904C3C8A485 ~/learn_awk
$ awk '{print $2}' test.txt
Math
100
80
90
95 Administrator@51B6904C3C8A485 ~/learn_awk
$
看这篇博客吧 ,讲得很好https://blog.csdn.net/stpeace/article/details/46848873
【Linux篇】--awk的使用的更多相关文章
- Python自动化测试面试题-Linux篇
目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...
- [zz] 安装PostGIS(Linux篇)
0.安装PostgreSQL数据库 参考安装PostgreSQL数据库(Linux篇). 1.安装proj4 #tar zxvf proj-4.8.0.tar.gz#cd proj-4.8.0#./c ...
- linux之awk
相较于sed 常常作用于一整个行的处理,awk 则比较倾向于一行当中分成数个『字段』来处理. 因此,awk 相当的适合处理小型的数据数据处理呢! awk 通常运作的模式是这样的: [root@linu ...
- os内存使用管理之linux篇
os内存使用管理之linux篇 看一下LINUX内存机制是怎么运作的,了解了基础知识,对于理解和操作是有很大帮助的. 抛砖引玉: Linux 优先使用物理内存,当物理内存还有空闲时,linux是不会施 ...
- linux中awk的使用
在linux中awk绝对是核心工具,特别是在查找搜索这一领域,和掌握sed命令一样重要 下面为awk的一些基本知识,基于这些知识,可以让你随意操控一个文件: 在awk中:()括号为条件块,{}为执行的 ...
- 版本控制工具Git工具快速入门-Linux篇
版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...
- C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇)
C语言-apache mod(模块开发)-采用apxs开发实战(centos7.2 linux篇) 名词解释:apxs apxs is a tool for building and installi ...
- linux 的 awk 使用
linux中awk命令对文本内容进行操作,其功能十分强大 1.如:查看一个有几百万行内容的文件中第3列数字内容(不重复) cat test.csv | awk -F ',' '{print $3}' ...
- Linux中awk后面的RS, ORS, FS, OFS 用法
Linux中awk后面的RS, ORS, FS, OFS 含义 一.RS 与 ORS 差在哪 我们经常会说,awk是基于行列操作文本的,但如何定义“行”呢?这就是RS的作用. 默认情况下,RS的 ...
- 【转】如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等
如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等 你是否曾经有过要计算一个非常大的数据(几百GB)的需求?或在里面搜索,或其它操作——一些无法并 ...
随机推荐
- CentOS6.5 安装Python2.7后, yum出现“No module named yum”错误
安装如下方法安装python2.7: yum install –y python27 python27-devel python-docutils cd /usr/bin/ rm -rf python ...
- loj553 「LibreOJ Round #8」MINIM
最简单的暴力dp就是f[i][j]表示到i异或和为j的最小花费. 然后我们发现两堆大小为i,j的石子合并,可以更新到一堆大小为k=i,j最高公共的1以下都是1,以上是i|j,权值为v1+v2的石子. ...
- BZOJ_2600_[Ioi2011]ricehub_二分答案
BZOJ_2600_[Ioi2011]ricehub_二分答案 Description 乡间有一条笔直而长的路称为“米道”.沿着这条米道上 R 块稻田,每块稻田的坐标均 为一个 1 到 L 之间(含 ...
- ModBus功能码速记
一.0x01~0x04: 这四个功能码都是"读"操作,可分两组记忆,0x01和0x02是一组(bool类型),0x03和0x04是一组(寄存器类型):两组属性差不多如下: 1.都是 ...
- MYSQL—— 基础入门,增、删、改、查(基础篇)
首先呢,先解释一下基本的概念,心里最起码知道就ok啦!其余更多的了解,得另查看喽! (1)什么是sql? sql:指结构化查询语言,有能力访问数据库,是一种ANSI(美国国家标准话组织)的标准计算机语 ...
- <转>快速找到整数约数集方法<python><stackoverflow>
[背景] 我需要从N遍历到1,当我已经判断N不符合要求时,我知道N的所有约数也是不符合的,所以所有N的约数也不用遍历.因此,对于遍历的每个N,我需要快速找到它的所有约数,放到一个集合里面,而当我遍历到 ...
- Python的re模块
什么是re模块,re模块有什么作用? re模块是Python提供的一个正则表达式相关的模块,主要是针对字符串进行模糊匹配,所以在字符串匹配这一功能上,re相当专业. 什么是模糊匹配? 之前的学习字符串 ...
- Java语言编程 - Java第一个程序HelloWorld
3.1 新建Java文件 首先新建一个文件夹,用于存放写的Java程序,例如我存放Java程序的位置为” D:\Files\code\java”. 在该文件夹中,右键新建一个文本文档 将文件名重命名为 ...
- No module named MySQLdb
解决办法 easy_install mysql-python (mix os) pip install mysql-python (mix os/ python 2) pip install mysq ...
- netcore使用 jenkins + supervisor 实现standalone下多副本自动化发布
上一篇我们用jenkins做了一个简单的自动化发布,在shell中采用的是 BUILD_ID=dontKillMe nohup dotnet xxx.dll & 这种简单的后台承载,如果你的 ...