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

本文作者:天梯的脚印

本文链接:https://www.cnblogs.com/zxl1024320609/p/16645112.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   天梯的脚印  阅读(634)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 世间美好与你环环相扣 柏松
世间美好与你环环相扣 - 柏松
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 尹初七

作曲 : 柏松

编曲 : 彭圣杰

偏偏秉烛夜游

偏偏秉烛夜游

午夜星辰 似奔走之友

爱你每个结痂伤口

酿成的陈年烈酒

入喉尚算可口

入喉尚算可口

怎么泪水 还偶尔失守

邀你细看心中缺口

裂缝中留存 温柔

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

让樱花偷偷 吻你额头

让世间美好 与你环环相扣

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

此时已莺飞草长 爱的人正在路上

此时已莺飞草长 爱的人正在路上

我知他风雨兼程 途经日暮不赏

穿越人海 只为与你相拥

此刻已皓月当空 爱的人手捧星光

我知他乘风破浪 去了黑暗一趟

感同身受 给你救赎热望

知道你不能 还要你感受

知道你不能 还要你感受

让星光加了一点彩虹

当樱花开的纷纷扬扬

当世间美好 与你环环相扣

特别鸣谢:槿葵,我们的海报制作妹妹。

原唱:柏松

吉他:柏松

和声:柏松

录音:柏松

混音:张强