awk简单用法
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。
1、域分割符
awk 在没有使用-F 指定分割符的时候。默认以空格为分割符。
域分割 $0代表文本内容全文显示
$1 代表分割第一个域
$2 代表分割第二个域
依次类推....
awk -F: 分割符号为':'
# cat /etc/passwd | awk -F: '{print $1,$2,}'
2、域和记录
awk执行时浏览域标记为$1,$2...$n,这种方法称为域的标识
(1)、抽取域
# cat /etc/passwd | awk -F: '{print $1}'
(2)、$0代表所有记录
# cat /etc/passwd | awk -F '{print $0}'
(3)、单独打印记录
# cat /etc/passwd | awk -F: '{print $1,$4}'
(4)、打印报告头
# cat /etc/passwd | awk -F: 'BEGIN{print "This is system user"}{print $1}' | more
(5)
、打印信息尾
# cat /etc/passwd | awk -F: 'BEGIN{print "This is system user"}{print $1}END{"print =================="}' | more
#cat passwd | awk -F: 'BEGIN{print "===================:"}{print "User Name: "$1}END{print "======================="}'
3、awk中的正则表达式
(1)、匹配~
# cat /etc/passwd |awk '{if($1~/root/) print $0}'
# cat /etc/passwd | awk '$0~/root/'
(2)、精确匹配
# cat /etc/passwd | awk -F: '$1=="root"{print $0}'
(3)、不匹配
# cat /etc/passwd | awk '$0 !~ /root/'
# cat /etc/passwd |awk '{if($1!~/root/) print $0}'
(4)、小于
# cat /etc/passwd | awk -F: '{if($3<200)print $3}'
(5)、小于或等于
# cat /etc/passwd | awk -F: '{if($3<=200)print $3}'
(6)、大于或者等于
# cat /etc/passwd | awk -F: '{if($3>500)print $3}'
# cat /etc/passwd | awk -F: '{if($3>=500)print $3}'
(7)、匹配多个关键字
# cat /etc/passwd | awk -F: '$1~/(root|user)/'
(8)、匹配行首
# cat /etc/passwd | awk -F: '$1~/^root/'
(9)、 awk 使用 && ||
# cat /etc/passwd | awk -F: '{if($1=="root" && $5=="root") print $0}'
# cat /etc/passwd | awk -F: '{if($1=="root" || $1=="sfsdfdsfds") print $0}'
4、awk NF和NR
(1)NF和NR,$NF打印域最后
NF 浏览记录的域个数(统计列的段数)
NR 已读的记录数(记录列行号)
# cat /etc/passwd | awk -F: '{print NF}'
# cat /etc/passwd | awk -F: '{print NF,NR}' 打印有几段并且输出每行的行号
# awk '{if(NR<10 && $1~/root/)print $1}' /etc/passwd 行号小于10的,使用$1匹配root关键字
# cat /etc/passwd | awk -F: '{print $NF}' 打印每段的最后一段
5、AWK替换
gsub (r,s)在整个$0中用s替代r
# cat /etc/passwd | awk 'gsub(/root/,"losbyday") {print $1}' 将root替换成losbyday
更多戳这里:
AWK用法入门详解 : http://www.cnblogs.com/losbyday/p/5854707.html
awk命令详解二 :http://www.cnblogs.com/losbyday/p/5854725.html
awk简单用法的更多相关文章
- awk简单用法-(1)
一.awk基本操作 awk指定多个分割符,分隔符中有:和空格,还有:和空格的组合,这个时候需要指定多个分隔符 -F'[ :]+',[ :]表示分隔符为:和空格,一个或者多个+号表示空格和:的组合也为一 ...
- grep结合awk简单用法
一.grep简介: grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行 ...
- Shellz中awk的简单用法
其实shell脚本的功能常常被低估.在实际应用中awk sed 等用法可以为shell提供更为强大的功能.下面我们将一下awk调用的简单方法进行了总结.方便同学们学习: awk的简单用法: 第一种调用 ...
- Linux sed 和 awk的用法
sed用法: 原文链接:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html sed是一个很好的文件处理工具,本身是一个管 ...
- 文本处理三剑客之AWK的用法
1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- gawk(awk)的用法案例
gawk(awk)的用法案例 本文首先简单介绍一个gawk和awk的区别,然后是一点基本使用流程,最后是自己做的一个分析数据文件的脚本代码,供大家参考.另外想了解基本流程的入门知识的可以下载附件pdf ...
- <三剑客> 老大:awk命令用法
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一 个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...
- awk命令_Linux awk 命令用法详解
本文索引 awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术运算符 赋值运算符 逻 ...
随机推荐
- TCP数据包结构
源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程.目的端口号( 16 位):它(连同目的主机 IP 地址)标识目的主机的一个应用进程.这两个值加上 IP 报头中的源主机 I ...
- 【搜索 回溯】 zoj 1002
题意:一些机枪彼此不能在同一行和同一列,但是由于有墙的阻隔,能保证子弹无法穿透,即可以同行同列,现问如果说给了一个n*n(n<=4)的矩阵,并给出了墙的分布情况,能否求出最大能繁殖的机枪数. 思 ...
- 扫描局域网内的ip和主机名
1. 目的 今天发现我配置的一台电脑ip被人占用了,所以准备写个程序扫描一下局域网内所有正在使用的ip和主机名 2. 实现--直接上代码 import time import threading im ...
- 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ
错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 C:\Users\Administ 这两个fatal error是因为从低版本的WTL到高版本的WTL转变后产生的 ...
- URL特殊字符需转义
URL特殊字符需转义 1.空格换成加号(+) 2.正斜杠(/)分隔目录和子目录 3.问号(?)分隔URL和查询 4.百分号(%)制定特殊字符 5.#号指定书签 6.&号分隔参数 转义字符的原因 ...
- UVA 1400 线段树
input n m 1<=n,m<=500000 a1 a2 ... an |ai|<=1e9 m行查询 每行一对a b output 对于每对a b输出区间[a,b]中最小连续和x ...
- php 10.1总
在做添加时写是否已经有该文件 $_sql1 = "SELECT * FROM tb_user where userName = {$_clean['userName']} "; $ ...
- python 基本的序列和映射规则
>>> def checkIndex(key):... if not isinstance(key,(int,long)):raise TypeError... if ...
- C# Socket的TCP通讯 异步 (2015-11-07 10:07:19)转载▼
异步 相对于同步,异步中的连接,接收和发送数据的方法都不一样,都有一个回调函数,就是即使不能连接或者接收不到数据,程序还是会一直执行下去,如果连接上了或者接到数据,程序会回到这个回调函数的地方重新往下 ...
- Git学习 -- 自定义Git
忽略特殊文件 在工作区创建.gitignore文件,编写内容 # Windows: Thumbs.db ehthumbs.db Desktop.ini # Python: 忽略Python编译产生的. ...