热门标签 | 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


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 基于Axis、XFire、CXF的webservice客户端调用示例
    本文介绍了如何使用Axis、XFire、CXF等工具来实现webservice客户端的调用,以及提供了使用Java代码进行调用的示例。示例代码中设置了服务接口类、地址,并调用了sayHello方法。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
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社区 版权所有