热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

awk使用实例详解

一、print相关实例[root@localhost~]#tail-4etcfstab|awk{print$2,$4}650)this.width650

一、print相关实例

    [root@localhost ~]#tail -4 /etc/fstab | awk  '{print $2,$4}'

wKioL1ctbTijVtyKAABNIUgmmCQ157.png

    [root@localhost ~]#tail -4 /etc/fstab | awk  '{print"hello:"$1}'

    [root@localhost ~]#tail -4 /etc/fstab | awk  '{print"hello:" $1}'

wKiom1ctbF_QTe2pAAEEqB_Lr1s761.png

    [root@localhost ~]#tail -4 /etc/fstab | awk  '{print"hello:$1"}'

wKioL1ctbTnA1lvoAAA81PGVf7E398.png

    [root@localhost ~]#tail -4 /etc/fstab | awk  '{print"hello:"$1 1234567}'

    [root@localhost ~]#tail -4 /etc/fstab | awk  '{print"hello:"$1,1234567}'

wKioL1ctbTnjqJ6dAAEmxsZgDIk157.png

 

 

 

二、变量使用实例

     -F:等于-v FS=':'

    [root@localhost ~]#tail -3 /etc/passwd | awk -F: '{print $1 }'

    [root@localhost ~]#tail -3 /etc/passwd | awk -v FS=':' '{print $1 }'

wKiom1ctbGCDLPLVAABcorisf64953.png

    [root@localhost ~]#tail -3 /etc/passwd | awk -v FS=':' '{print $1,$3,$7 }'

    [root@localhost ~]#tail -3 /etc/passwd | awk -v FS=':' -v OFS='@' '{print $1,$3,$7 }'

wKiom1ctbGCiElGEAACd1nDi1hw067.png

    [root@localhost ~]#head -5 /etc/fstab | awk '{print NF}'

    [root@localhost ~]#head -5 /etc/fstab | awk '{print $NF}'

wKioL1ctbTriqAfjAABicidZ7zw780.png

    [root@localhost ~]#tail -4 /etc/fstab | awk '{print NR}'

wKiom1ctbGHTPz26AAAsVdrez5A921.png

    [root@localhost ~]#awk '{print FILENAME}' /etc/fstab /etc/issue

wKioL1ctbTrT-HhjAABvJGRt1A4901.png

    [root@localhost ~]#awk 'BEGIN{print ARGC}' /etc/fstab /etc/issue

    [root@localhost ~]#awk 'BEGIN{print ARGV[0]}' /etc/fstab /etc/issue

    [root@localhost ~]#awk 'BEGIN{print ARGV[1]}' /etc/fstab /etc/issue

    [root@localhost ~]#awk 'BEGIN{print ARGV[2]}' /etc/fstab /etc/issue

wKioL1ctbTrQDPJLAACgRNj84Ck792.png

    [root@localhost ~]#awk -v test='hello world' 'BEGIN{print test}'

    [root@localhost ~]#awk 'BEGIN{test="hello world";print test}'

wKiom1ctbGGTXDarAABPNUmepq4127.png

 

 

 

三、printf实例

    [root@localhost ~]# tail -3 /etc/passwd| awk -F: '{printf "%s",$1}'    # 默认在一行显示

    [root@localhost ~]#tail -3 /etc/passwd | awk -F: '{printf "%s\n",$1}'

    [root@localhost ~]#tail -3 /etc/passwd | awk -F: '{printf "Username:%s\n",$1}'

wKioL1ctbTvxfuTYAACTBPCtUKA655.png

    [root@localhost ~]#tail -3 /etc/passwd | awk -F: '{printf "Username:%s,UID:%d\n",$1,$3}'

wKiom1ctbGLww9yeAABUvOf1Yxw187.png

    [root@localhost~]#  head -3 /etc/passwd | awk -F:'{printf "Username: %10s, UID:%d\n",$1,$3}'

    [root@localhost~]#  head -3 /etc/passwd | awk -F:'{printf "Username: %-10s, UID:%d\n",$1,$3}'

wKiom1ctbGLi_2iJAACfOXRhjsY955.png

 

 

 

四、条件判断操作符实例

    [root@localhost ~]#tail -5 /etc/passwd | awk -F: '{$3>=1000?usertype="CommonUser":usertype="Sysadmin or SysUser";printf"%-15s:%-s\n",$1,usertype}'

wKioL1ctbTzh8AZzAACYG9HDfg8084.png

 

 

五、PATTERN使用实例

    [root@localhost ~]#awk '/^UUID/ {print $1}' /etc/fstab

wKioL1ctbTyRI3ZsAAB6JHsZyps546.png

    [root@localhost ~]#awk '!/^UUID/ {print $1,$2}' /etc/fstab

wKiom1ctbGOQJ7UeAAA9ljX4WWI325.png

    [root@localhost ~]#awk -F: '$3>=900{printf "%-30s,%d\n",$1,$3}' /etc/passwd

wKiom1ctbGPA-nLkAACFUxqYnxk473.png

    [root@localhost ~]#awk -F: '$NF=="/bin/bash"{printf "%-20s%s\n",$1,$NF}'/etc/passwd

    [root@localhost ~]#awk -F: '$NF~/bash$/{printf"%-20s%s\n",$1,$NF}' /etc/passwd

wKioL1ctbT3yw2zJAABqETtp-8E332.png

    [root@localhost ~]#awk -F: '(NR>=10&&NR<=15){print $1}' /etc/passwd

wKiom1ctbGTxiYO9AABMAFF7X6U158.png

    [root@localhost ~]#tail -5 /etc/passwd | awk -F: 'BEGIN{print "username            uid      \n-----------------------------"}{printf"%-20s%d\n",$1,$3}'

wKioL1ctbT2SyoAhAABvjBt4tqc249.png

    [root@localhost ~]#tail -5 /etc/passwd | awk -F: '{print "username            uid      \n-----------------------------";printf"%-20s%d\n",$1,$3}'

wKiom1ctbGSha_plAACRoMyWQxU057.png

    [root@localhost~]#  tail -5 /etc/passwd | awk -F:'BEGIN{print "username           uid      \n-----------------------------"}{printf"%-20s%d\n",$1,$3}END{print"===================\n end"}'

wKioL1ctbT6jtlXDAAB7Z33lG-Q156.png

 

 

六、if-else语句

    [root@localhost ~]#awk -F: '{if($3>=900) print $1,$3}' /etc/passwd

wKioL1ctbT7i8d0-AAB753hf_sg600.png

    [root@localhost ~]#tail -5 /etc/passwd | awk -F: '{if($3>=1000) {printf "Commonuser:%-34sUid:%d\n",$1,$3} else {printf "Root orSysuser:%-30sUid:%d\n",$1,$3}}'

wKiom1ctbGXw7zZzAACj42w1lZc777.png

    [root@localhost ~]#awk -F: '{if($NF=="/bin/bash") print $1}' /etc/passwd

wKiom1ctbGXzq1T6AAAygfmoy0w131.png

    [root@localhost ~]#df -h

    [root@localhost~]#  df -h | awk -F[%] '/^\/dev/{print$1}' | awk '{if($NF>=20) print $1}'

wKioL1ctbT_Q4xyGAADmqkhxo8s942.png

 

 

七、while循环

    [root@localhost ~]#awk '/^[[:space:]]*linux16/{i=1;while(i<=NF) {print $i,length($i); i++}}'/etc/grub2.cfg

wKioL1ctbT_iezvoAADVwYrWr7Y730.png

    [root@localhost~]#  awk'/^[[:space:]]*linux16/{i=1;while(i<=NF) {if(length($i)>=7) {print$i,length($i)};

wKiom1ctbGaSHD7xAADIu0VQRO4897.png

 

 

八、for循环

    [root@localhost ~]#awk '/^[[:space:]]*linux16/{for(i=1;i<=NF;i++) {print $i,length($i)}}'/etc/grub2.cfg

wKioL1ctbUCDP6K-AADgjdU56g4912.png

 

 

九、next   

    [root@localhost ~]#tail -10 /etc/passwd | awk -F: '{if($3%2!=0) next; print $1,$3}'

wKiom1ctbGeQEgQ_AABW2bjuAv8768.png

 

 

十、数组

    [root@localhost ~]#netstat -tan | awk '/^tcp\>/{state[$NF]++}END{for(i in state) { printi,state[i]}}'

wKiom1ctbGfDbZO5AAATk3TzFDo457.png

    [root@localhost ~]#awk '/^UUID/{fs[$3]++}END{for(i in fs) {print i,fs[i]}}' /etc/fstab

wKiom1ctbjWi3LurAAAPVUmrcKg413.png

    [root@localhost ~]# awk'{for(i=1;i<=NF;i++){count[$i]++}}END{for(i in count) {print i,count[i]}}'/etc/fstab    # 遍历文件统计单词出现次数

wKioL1ctbw6C5Bg0AABGh_d6rfQ800.png

 

 

十一、函数

    [root@localhost ~]#netstat -tan | awk'/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for (i in count){print i,count[i]}}'

wKiom1ctbjWRDLu7AAAT4-KRLqA167.png

本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1770983


推荐阅读
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • Spring Cloud Config 使用 Vault 作为配置存储
    本文探讨了如何在Spring Cloud Config中集成HashiCorp Vault作为配置存储解决方案,基于Spring Cloud Hoxton.RELEASE及Spring Boot 2.2.1.RELEASE版本。文章还提供了详细的配置示例和实践建议。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • 详细指南:使用IntelliJ IDEA构建多模块Maven项目
    本文在前两篇文章的基础上,进一步指导读者如何在IntelliJ IDEA中创建和配置多模块Maven项目。通过详细的步骤说明,帮助读者掌握项目模块化管理的方法。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本文详细介绍了在XAMPP环境中如何修改Apache和MySQL的默认端口号,并确保WordPress能够正常访问。同时,提供了针对Go语言社区和Golang开发者的相关建议。 ... [详细]
  • Eclipse 中 JSP 开发环境配置指南
    本文详细介绍了如何在 Eclipse 集成开发环境中配置 JSP 运行环境,包括必要的软件下载、Tomcat 服务器的配置以及常见问题的解决方法。 ... [详细]
  • 本文探讨了如何在Node.js环境中,通过Tor网络使用的SOCKS5代理执行HTTP请求。文中不仅提供了基础的实现方法,还介绍了几种常用的库和工具,帮助开发者解决遇到的问题。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
author-avatar
qqqq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有