码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • awk5个使用场景


    awk简介

    1. 首先要知道awk的使用场景,需了解awk有哪些优势与短板。
    2. 关于个人近期学习awk总结其优势:
      • awk对文本的处理运算效率同比其他工具效率高很多(比shell的for循环高10倍以上,运算比bc计时器也高很多)
      • awk默认可对多个空格进行列切分,需要再借助其他工具。
      • awk可以对任意多个字符进行列分隔。
      • 如果文本列很多,可通过NF定位到最后一列获取列数据。
      • awk工具处理文本的命令非常丰富,几乎可以看成一套完整的编程语言。
    3. 缺点
      • awk无法修改文本文件。

    awk案例

    1. 案例场景:/etc/passwd 第一列、第三列、最后一列

      awk -F":" '{printf "%-20s%-3s%15s\n",$1,$3,$NF}' /etc/passwd

      image-20220831225737843

    2. 案例场景:获取内存信息、IP地址信息、磁盘分区信息

      内存信息:

      free -h|awk '/^Mem/{printf"已使用内存:%s\n当前空闲内存:%s\n内存使用率:%.2f%\n",$4,$3,$3/$2*100}'

      image-20220831231010598

      IP地址:

      ip address show eth0 |awk -F" +|/" '/inet/{printf"IP地址:%s\n",$3}'

      image-20220831232513661

      磁盘信息:

      df -h|awk -v i=0 -F" +|/" '/\/dev\/(nvm|sdb)/{i++ ;printf"%s.分区名称:%s\t大小:%s\t已使用:%s\t使用率:%s\n",i,$3,$4,$5,$7}'

      image-20220831234456014

    3. 案例场景:做简单循环,写一个九九乘法表并统计运行时间,以及比较shell for循环的运算时间

      time(awk 'BEGIN{for(i=1;i<=9;i++){ for(j=1;j<=i;j++){ printf"%s*%s=%s\t",i,j,i*j;if(j==i){printf"\n"} }}}')

      image-20220901000305111

      time(for((i=1;i<=9;i++)) ;do for(( j=1;j<=i;j++)) ;do echo -en "$i*$j=$((i*j)) " ; if(($i==$j)) ;then echo -e "\n" ;fi ;done ;done)

      image-20220901001431856

    4. 案例场景:做多循环运算再统计运行时间,比较shell for循环运算时间

      time(awk -v num=0 'BEGIN{for(i=1;i<=1000000;i++){ num+=i};print num}')

      image-20220901002211304

      time( num=0;for((i=1;i<=1000000;i++)) ;do let num=$((num + i)) ;done ;echo $num)

      image-20220901003152164

    5. 案例场景:统计用户访问站点IP的个数,以apache日志为例

      cat /var/log/httpd/access_log-20220828|awk '{ ips[$1]++ }END{for(i in ips){print i,ips[i]}}'

      image-20220901010031115

  • 相关阅读:
    DVWA——反射型XSS(low级别)
    [附源码]计算机毕业设计基于Springboot校刊投稿系统
    【服务器数据恢复】RAID故障导致数据库所在分区无法识别的数据恢复
    汇编原理(二)寄存器——CPU工作原理
    紫色调城市和奔跑人物剪影背景工会工作总结汇报PPT模板
    Flask + Bootstrap vs Flask + React/Vue:初学者指南
    AD使用技巧2
    互联网加竞赛 基于设深度学习的人脸性别年龄识别系统
    【Android Studio】常用布局 --- 滚动视图ScrollView
    spring的学习【3】
  • 原文地址:https://www.cnblogs.com/zxl1024320609/p/16645112.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号