awk数组

数组应用场景

数组的下标可以是任意形式,理解为高级语言的map表即可

统计次数:统计每个用户ip出现的次数,统计每种状态码出现次数,统计系统中每个用户被攻击的次数,统计攻击者ip出现的次数

求和:统计每个ip消耗的流量

shell数组 awk数组
形式 array[0]=oldboy array[1]=lidao array[0]=oldboy array[1]=lidao
使用 echo ${array[0]} ${array[1]} print array[0] array[1]
批量输出数组的内容 for i in ${array[*]}
do
echo $i
done
for(i in array)
print a[i]

awk数组中取变量不用$,awk中的$就用来取列,$0取一行

  • awk中的字母会被识别为变量,如果想使用字符串,需要用到双引号
awk 'BEGIN{a[0]=12306; a[1]="lidao"; print a[0],a[1]}'

  • awk批量输出数组内容
awk 'BEGIN{a[0]=12306; a[1]="lidao"; a[2]="hello"; a[3]=123; for(i in a) print i,a[i]};'

  • 统计下面每个URL出现的次数
http://www.etiantain.org/index.html
http://www.etiantain.org/1.html
http://post.etiantain.org/index.html
http://mp3.etiantain.org/index.html
http://www.etiantain.org/3.html
http://post.etiantain.org/2.html
awk -vFS=/ '{array[$3]++;}END{for (url in array) print url, array[url]}' url.txt
awk -vFS=/ '{array[$3]++;}END{for (url in array) print url, array[url]}' url.txt | sort -rnk2

awk '$9~[0-9][0-9][0-9]/{array[$9]++}END{for (i in array) print i, array[i]}' access.log | sort -rnk2

awk循环

shell循环 awk循环
使用 for(i=1;i<=10;i++)
do
echo $i
done
for(i=1;i<=10;i++) {print i}
  • 1-100求和
awk 'BEGIN{for(i=1;i<=100;i++){sum+=i;} print sum;}'

awk判断

  • 磁盘利用率大于20%,则显示"disk not enough"
df -h | awk -F"[ %]+" 'NR>1{if($5>20){print "disk not enough", $1, $5,$NF}}'

awk使用条件判断时,第一个条件在{动作}前,后面还有条件判断用if

  • 统计一段文本中,单词长度小于6的单词数量
Studying a subject that you feel pointless is never a fun or easy task. If you're study history, asking yourself the question "why is history important" is a very good first step. History is an essential part of human civilization. You will find something here that will arouse your interest, or get you thinking about the significance of history.
shen@ubuntu-vm:~/code/test$ awk -F"[ .\",]+" '{for(i=1;i<=NF;i++){print $i}}' en.txt
Studying
a
subject
that
you
feel
pointless
is
never
a
fun
or
easy
task
If
you're
study
history
asking
yourself
the
question
why
is
history
important
is
a
very
good
first
step
History
is
an
essential
part
of
human
civilization
You
will
find
something
here
that
will
arouse
your
interest
or
get
you
thinking
about
the
significance
of
historyshen@ubuntu-vm:~/code/test$ awk -F"[ .\",]+" '{for(i=1;i<=NF;i++){if(length($i)>6)print $i}}' en.txt
Studying
subject
pointless
history
yourself
question
history
important
History
essential
civilization
something
interest
thinking
significance
history
shen@ubuntu-vm:~/code/test$ awk -F"[ .\",]+" '{for(i=1;i<=NF;i++){if(length($i)>6) sum+=1}} END{print sum}' en.txt
16

Linux三剑客awk数组、判断、循环相关推荐

  1. linux三剑客awk、sed、grep与cut的总结

    在Linux中,一切皆文件,对Linux的操作就是对文件的处理.对文件操作处理最重要的三个命令是grep.sed.awk,它们在业界被称为"三剑客". 三剑客的功能非常强大,但它们 ...

  2. Linux三剑客(awk、sed、grep) 和 正则表达式

    本文章适用于一定工作经验(熟悉Linux基础)的同行,欢迎各位大佬批判指正. 上手三剑客(grep,sed,awk)之前,需要熟悉正则表达式,正则表达式--事先定义好的一些特定字符.及这些特定字符的组 ...

  3. linux三剑客(awk,grep,sed)

    简介 linux三剑客是指在linux操作系统中非常重要的三个命令,即awk,grep,sed这三个命令.它们都具有优秀的处理文件的功能. ①awk:多用于取列. ②grep:多用于查找或匹配文本. ...

  4. Linux shell awk数组使用

    awk中使用数组 一.数组格式 数组是一个包含一系列元素的表. 格式如下:     abc[1]="xiaohong"     abc[2]="xiaolan" ...

  5. 每天学一点儿shell:Linux三剑客——awk命令

    文章目录 awk的命令格式 命令格式 常用命令选项 awk内置命令 awk的用法实例 获取内容的第2列 获取每一行的行数 内置函数 算数函数 字符串内置函数 时间内置函数 awk的命令格式 命令格式 ...

  6. linux三剑客试题,linux三剑客-awk

    第1章 awk指哪打哪 1.1 awk内置变量 FS 输入字段(列)分隔符 -F : 相当于-vFS : NR number of record 行号(记录号) NF number of filed  ...

  7. 01-09 Linux三剑客-awk

    定义 把文件逐行读入,以空格为默认分割符,将每行切片,切开的部分再进行后续处理 处理流程: 格式:awk [参数] 'pattern action' [文件] pattern:正则表达式 action ...

  8. Linux三剑客awk之行和列

    一.介绍 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具,也是一门语言,有自己的数据结构,可以进行过滤.统计.计算.取行取列等操作 之所以叫 AWK 是因为其取了三位创始人 Alfred ...

  9. 【Linux上分之路】第十二篇:Linux三剑客grep、sed、awk

    文章目录 Linux三剑客 三剑客特点及应用场景 grep grep命令的基本格式 grep范例 grep命令选项 -A.-B -c.-v -n.-w sed sed命令基本格式 sed命令功能 se ...

最新文章

  1. MYSQL 的 MASTER到MASTER的主主循环同步
  2. Python-opencv实现视频与图片的相互转换
  3. 吴恩达机器学习笔记:(六)Octave使用
  4. linux安装程序乱码,linux远程桌面乱码解决及引起的相关问题、字库安装
  5. 基于Rest服务实现的RPC
  6. 2.1、StopWatch 启动与停止(ok)
  7. Unity 生成APK 出错的解决方法
  8. web自动化测试 Selenium2 Java自动化测试实战9_3
  9. 斗鱼 Juno 监控中心的设计与实现
  10. liunx机器开放8080端口
  11. 红队技术-父进程伪装(MITRE ATTCK框架:T1134)
  12. TC118AH单通道内置MOS单通道直流无刷马达驱动IC
  13. 最新冰盾DDoS防火墙V9.1 新增防护功能更强大
  14. 我就问你,半路接手嵌入式项目棘手不?
  15. 常规正则表达式练习,一起来开心的掉发吧
  16. 宝塔UA黑名单怎么设置
  17. 医药行业2021年1月投资月报:加配弹性品种,稳守核心资产-20210106
  18. 通达信挖掘大牛浮水指标公式源码
  19. psp升级时,出现9.90问题的解决办法
  20. 频谱仪trace扫频轨迹设置流程

热门文章

  1. 程序的各段存在RAM还是ROM?
  2. GCC编译器原理(一)03------GCC 工具:gprof、ld、libbfd、libiberty 和libopcodes
  3. makefile内置函数patsubst
  4. 菜单设置:点击第一级菜单,第二级菜单在下方出现,并且下方的一级菜单自动下移
  5. 计算机毕业设计(1)python毕设作品之疫苗预约系统
  6. shader graph 边缘光效果
  7. 课堂演讲之《遵纪守法》
  8. 放任通胀就是与虎相伴
  9. 【select】选择标签select
  10. 聊一聊,我对DDD的关键理解