文章目录

  • 一、四剑客之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相关推荐

  1. Linux之四剑客:find、sed、grep、awk

    目录 find 查找方式 1.按名字查找 2.按目录查找 3.按权限查找 4.按类型查找 (b/d/c/p/l/f ) 5.按属主及属组 6.按时间查找 7.按文件新旧 8.按大小查找 sed 1.打 ...

  2. linux四剑客-grep/find/sed/awk/详解-技术流ken

    四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...

  3. Shell编程四剑客之AWK(基础篇)

    Shell 编程四剑客之 AWK 概述 其语法参数格式为,AWK 常用参数.变量.函数详解如下: (1) AWK 基本语法参数详解: (2) AWK 内置变量详解: (3) AWK 内置函数详解: ( ...

  4. linux文本分析利器awk

    转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...

  5. linux 日志报告生成器,Linux报告生成器工具awk

    Linux报告生成器工具awk awk:根据输入的信息格式化后显示出来 1.1.awk基本用法 awk [options] 'script' file1,file2,.... 或 awk [optio ...

  6. Linux 文件处理3剑客之 awk

    awk对于大部分人都是相当的陌生.即便一个对Linux比较熟悉的人,也未必知道awk.为什呢?因为awk与其它大多数Linux命令不同,无法从名字上看出它到底是干什么的.实际上,awk是它的三个作者姓 ...

  7. Linux三大剑客(grep,sed,awk)

    目录 grep命令: sed命令: awk命令 简单概括: grep:数据查找 awk:数据切片 sed:数据修改 grep命令: 限定符"+":匹配其前面的字符1次或多次.至少匹 ...

  8. Linux的正则语法,vim跟三大剑客(awk sed grep)

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  9. 15分钟搞定Linux三剑客 grep sed awk

    剑客grep 来者何人 grep是linux上的字符串搜索匹配命令.这个名字来自于linux编辑器vim的一个命令g/re/p,表示全局匹配某个正则表达式并打印出来,这也体现了grep自身的功能. 基 ...

最新文章

  1. 程序员的起床动力 | 每日趣闻
  2. Linux文件权限符号含义
  3. 企业千人千面管理模式_零售企业该如何打造“千人千面”的差异化营销?
  4. 基于TCP协议的通信模型
  5. 源代码管理之SVN服务器搭建和使用
  6. C++之set()函数和get()函数探究
  7. 2015年第六届蓝桥杯国赛试题(JavaA组)
  8. WifiConnectivityManager 管理扫描
  9. Javascript常见设计模式解析
  10. java你应该学会什么
  11. Combating the Repatriation Blues
  12. 移动端APP设计规范
  13. 思科计算机基础知识,思科路由器基础知识--存储详解
  14. 【flutter】type ‘Null‘ is not a subtype of type ‘bool‘
  15. 〖Docker指南②〗Docker常用命令汇总
  16. 正数负数的原码,反码,补码
  17. 自用-----------------
  18. 竞赛排名_纪中1743_模拟
  19. RK3399 CAN接口配置设备树(mcp2515)
  20. e代理与和合首创达成战略合作,共创WealthTech生态圈

热门文章

  1. 如何动手做一个属于自己的网页——HTML基础知识总结
  2. C#WPF 常用控件
  3. mac双系统更新失败的处理办法
  4. 文件夹操作:DirectoryInfo类与Directory类
  5. 定位:相对定位和绝对定位
  6. 手游-神雕侠侣 85侠客纪攻略(已通关)
  7. 生活大爆炸第一季 那些精妙的台词翻译
  8. Mac使用charles抓包(外加小米5s抓包配置)
  9. 阿里全员标配的内部指令集鼠标垫,我的粉丝每人包邮送一块
  10. 2023年IT岗位最火热的就业方向有哪些?网络安全必占一席