Linux之四剑客之awk
文章目录
- 一、四剑客之awk
- 二、awk参数和变量
- 1.常用参数
- 2.内置变量
- 3.语法格式
- 4.实例
一、四剑客之awk
awk:专门为文本处理设计的编程语言,主要用于数据扫描、过滤、统计汇总工作,数据可以来自标准输入、管道或者文件。
二、awk参数和变量
1.常用参数
-F 指定输入时用到的字段分隔符
-v 自定义变量
-f 从脚本中读取awk命令
-m 对val值设置内在限制
2.内置变量
3.语法格式
语法:
awk [选项] '模式{动作}' [文件信息]打印列信息:
$0:取所有列的信息
$1 $2 $3 : 第一列、第二列、第三列
$NF:取最后一列
$(NF-n):取倒数第几列打印行信息:
输出行: awk 'NR==3'
输出3-5行:awk 'NR==3,NR==5' awk.txt
输出3,5行:awk 'NR==3;NR==5'
打印第三之后的行: awk 'NR>=3' awk.txt
4.实例
[ Nginx ~] #cat awk.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Meng Feixue 80042789 :250:60:50
Wu Waiwai 70271111 :250:80:75
Liu Bingbing 41117483 :250:100:175
Wang Xiaoai 3515064655 :50:95:135
Zi Gege 1986787350 :250:168:200
Li Youjiu 918391635 :175:75:300
Lao Nanhai 918391635 :250:100:175#1.匹配姓Zhang的人
[ Nginx ~] #awk '/Zhang/{print $0}' awk.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201#2.查找名字中带Z的人
[ Nginx ~] #awk '/^Z/{print $0}' awk.txt
Zhang Dandan 41117397 :250:100:175
Zhang Xiaoyu 390320151 :155:90:201
Zi Gege 1986787350 :250:168:200#3.显示Xiaoyu的姓氏和号码
[ Nginx ~] #awk '/Xiaoyu/{print $1,$3}' awk.txt
Zhang 390320151#4.姓氏行Zhang,显示第二次捐款数额
[ Nginx ~] #awk -F ":" '/Zhang/{print $3}' awk.txt
100
90#5.显示所有以41开头的ID号码的人全名和ID
[ Nginx ~] #awk '$3~/^41/{print $1,$2,$3}' awk.txt
Zhang Dandan 41117397
Liu Bingbing 41117483#6.显示所有ID号码最后一位是1或者5的人的全名
方法一:
[ Nginx ~] #awk '$3~/1$|5$/{print $1,$2,$3}' awk.txt | column -t
Zhang Xiaoyu 390320151
Wu Waiwai 70271111
Wang Xiaoai 3515064655
Li Youjiu 918391635
Lao Nanhai 918391635
# column -t 以表格形式显示
方法二:awk '$3~/[15]$/{print $1,$2,$3}' awk.txt | column -t
方法三:awk '$3~/(1|5)$/{print $1,$2,$3}' awk.txt | column -t#7.显示Xiaoyu的捐款,捐款数值前带上$符号,如:$120
#gsub(/需要替换的信息/,"修改成什么信息",将哪列信息进行修改)
[ Nginx ~] #awk '$2~/^Xiaoyu/{gsub(/:/,"$",$4);print $NF}' awk.txt
$155$90$201#8.特殊的模式--BEGIN{} 在awk执行命令前做什么事情:
[ Nginx ~] #awk 'BEGIN{print "姓","名","身份号码","捐款金额"}{gsub(/:/,"$",$4);print $0}' awk.txt | column -t
姓 名 身份号码 捐款金额
Zhang Dandan 41117397 $250$100$175
Zhang Xiaoyu 390320151 $155$90$201
Meng Feixue 80042789 $250$60$50
Wu Waiwai 70271111 $250$80$75
Liu Bingbing 41117483 $250$100$175
Wang Xiaoai 3515064655 $50$95$135
Zi Gege 1986787350 $250$168$200
Li Youjiu 918391635 $175$75$300
Lao Nanhai 918391635 $250$100$175
#9.awk和if语句使用
[ Nginx ~] #awk -F "[:]+" '{if($NF>200)print $NF}' awk.txt
201
300
#[ :]+这个是正则表达式,+表示一个或多个,这里就表示一个或多个空格或冒号#10.打印端口号、进程号、进程
[ Nginx ~] #!cat
cat nginx.txt
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1286/nginx: master
tcp 0 0 0.0.0.0:90 0.0.0.0:* LISTEN 1286/nginx: master
[ Nginx ~] #awk -F "[ :/]+" '{print $5,$9,$10}' nginx.txt
80 1286 nginx
90 1286 nginx#11.打印IP地址
[ Nginx ~] #ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500inet 10.1.0.3 netmask 255.255.255.0 broadcast 10.1.0.255inet6 fe80::31a2:10b4:3228:9fa8 prefixlen 64 scopeid 0x20<link>ether 00:0c:29:db:3b:99 txqueuelen 1000 (Ethernet)RX packets 14634 bytes 13782692 (13.1 MiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 6680 bytes 522825 (510.5 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[ Nginx ~] #ifconfig ens160 | awk 'NR==2{print $2}'
10.1.0.3
Linux之四剑客之awk相关推荐
- Linux之四剑客:find、sed、grep、awk
目录 find 查找方式 1.按名字查找 2.按目录查找 3.按权限查找 4.按类型查找 (b/d/c/p/l/f ) 5.按属主及属组 6.按时间查找 7.按文件新旧 8.按大小查找 sed 1.打 ...
- linux四剑客-grep/find/sed/awk/详解-技术流ken
四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...
- Shell编程四剑客之AWK(基础篇)
Shell 编程四剑客之 AWK 概述 其语法参数格式为,AWK 常用参数.变量.函数详解如下: (1) AWK 基本语法参数详解: (2) AWK 内置变量详解: (3) AWK 内置函数详解: ( ...
- linux文本分析利器awk
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
- linux 日志报告生成器,Linux报告生成器工具awk
Linux报告生成器工具awk awk:根据输入的信息格式化后显示出来 1.1.awk基本用法 awk [options] 'script' file1,file2,.... 或 awk [optio ...
- Linux 文件处理3剑客之 awk
awk对于大部分人都是相当的陌生.即便一个对Linux比较熟悉的人,也未必知道awk.为什呢?因为awk与其它大多数Linux命令不同,无法从名字上看出它到底是干什么的.实际上,awk是它的三个作者姓 ...
- Linux三大剑客(grep,sed,awk)
目录 grep命令: sed命令: awk命令 简单概括: grep:数据查找 awk:数据切片 sed:数据修改 grep命令: 限定符"+":匹配其前面的字符1次或多次.至少匹 ...
- Linux的正则语法,vim跟三大剑客(awk sed grep)
这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...
- 15分钟搞定Linux三剑客 grep sed awk
剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...
最新文章
- 程序员的起床动力 | 每日趣闻
- Linux文件权限符号含义
- 企业千人千面管理模式_零售企业该如何打造“千人千面”的差异化营销?
- 基于TCP协议的通信模型
- 源代码管理之SVN服务器搭建和使用
- C++之set()函数和get()函数探究
- 2015年第六届蓝桥杯国赛试题(JavaA组)
- WifiConnectivityManager 管理扫描
- Javascript常见设计模式解析
- java你应该学会什么
- Combating the Repatriation Blues
- 移动端APP设计规范
- 思科计算机基础知识,思科路由器基础知识--存储详解
- 【flutter】type ‘Null‘ is not a subtype of type ‘bool‘
- 〖Docker指南②〗Docker常用命令汇总
- 正数负数的原码,反码,补码
- 自用-----------------
- 竞赛排名_纪中1743_模拟
- RK3399 CAN接口配置设备树(mcp2515)
- e代理与和合首创达成战略合作,共创WealthTech生态圈