awk命令学习与练习--20个例子

awk命令学习

  • awk理论知识
  • awk命令练习
    • 1.以 : 为分隔,显示test中每行的第1和第7个字:
    • 2.以 : 为分隔,显示$3>999或第7个字段包含bash的行的第1和第7个字段:
    • 3.统计数据:
    • 4.在输出文件之前输出start,处理完文件之后在输出end:
    • 5.统计某个目录下所有文件的size总和:
    • 6.通过df命令查看当前系统磁盘占用率,查出占用率大于等于百分之20的磁盘名称以及磁盘占用率:
    • 7.用 ‘:’ 作为分隔符,打印所有第三段小于第四段的行:
    • 8.用 ‘:’ 作为分隔符,打印第一段以及最后一段,并且中间用 ‘@’ 连接:
    • 9.用 ‘:’ 作为分隔符,把整个文档的第三段相加:
    • 10.打印奇数行和偶数行:
    • 11.打印UID不等于GID的用户名:
    • 12.显示所有以一个s或n开头的字符串:
    • 13.用‘:’做分隔符,使第六段字符等于2,并打印:
    • 14.打印第三个字段大于10并且第四个字段大于20的字段:
    • 15.显示所有只有四个字符的第一段:
    • 16.如果第三段大于200则打印第1,3,6段:
    • 17.统计test文件中每个单词出现的次数:
    • 18.提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字:
    • 19.统计netstat -tan 中各状态的次数:
    • 20.统计出test文件中shell的种类和个数:

awk理论知识

  awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,默认以空格为分隔符将每行切片,切开的部分再进行各种分析处理。 awk是行处理器,相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。
   参数:
     -F :指定分隔符
     -f : 调用脚本
     -v :定义变量
     Begin{}:初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
     // :匹配代码块,可以是字符串或正则表达式
     {} :命令代码块,包含一条或多条命令,多条命令用 ; 隔开
     END{}:结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
字符:
     $0 :表示整个当前行
     $1 :每行第一个字段
     NF :字段数量变量
     NR :每行的记录号,多文件记录递增
     FNR :与NR类似,不过多文件记录不递增,每个文件都从1开始
     \t :制表符
     \n :换行符
     FS :BEGIN时定义分隔符
     RS :输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
     ~ :包含
     !~ :不包含
     == :等于,必须全部相等,精确比较
     != :不等于,精确比较
     && :逻辑与
     || :逻辑或
     + :匹配时表示1个或1个以上
     /[0-9][0-9]+/ :两个或两个以上数字
     /[0-9][0-9]*/ :一个或一个以上数字
     OFS :输出字段分隔符, 默认也是空格,可以改为其他的
     ORS :输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
     -F [:#/] :定义了三个分隔符

awk命令练习

1.以 : 为分隔,显示test中每行的第1和第7个字:

awk命令学习与练习--20个例子_第1张图片

2.以 : 为分隔,显示$3>999或第7个字段包含bash的行的第1和第7个字段:

在这里插入图片描述

3.统计数据:

awk命令学习与练习--20个例子_第2张图片

4.在输出文件之前输出start,处理完文件之后在输出end:

awk命令学习与练习--20个例子_第3张图片

5.统计某个目录下所有文件的size总和:

在这里插入图片描述

6.通过df命令查看当前系统磁盘占用率,查出占用率大于等于百分之20的磁盘名称以及磁盘占用率:

在这里插入图片描述

7.用 ‘:’ 作为分隔符,打印所有第三段小于第四段的行:

awk命令学习与练习--20个例子_第4张图片

8.用 ‘:’ 作为分隔符,打印第一段以及最后一段,并且中间用 ‘@’ 连接:

awk命令学习与练习--20个例子_第5张图片

9.用 ‘:’ 作为分隔符,把整个文档的第三段相加:

在这里插入图片描述

10.打印奇数行和偶数行:

awk命令学习与练习--20个例子_第6张图片
awk命令学习与练习--20个例子_第7张图片

11.打印UID不等于GID的用户名:

awk命令学习与练习--20个例子_第8张图片

12.显示所有以一个s或n开头的字符串:

awk命令学习与练习--20个例子_第9张图片

13.用‘:’做分隔符,使第六段字符等于2,并打印:

awk命令学习与练习--20个例子_第10张图片

14.打印第三个字段大于10并且第四个字段大于20的字段:

awk命令学习与练习--20个例子_第11张图片

15.显示所有只有四个字符的第一段:

awk命令学习与练习--20个例子_第12张图片

16.如果第三段大于200则打印第1,3,6段:

awk命令学习与练习--20个例子_第13张图片

17.统计test文件中每个单词出现的次数:

awk命令学习与练习--20个例子_第14张图片

18.提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字:

在这里插入图片描述
代码如下:

echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw"|awk -F "[^[:digit:]]" '{for(k=1;k<=NF;k++){count[$k]}}END{for(i in count){printf "%s",i}printf "\n"}'

19.统计netstat -tan 中各状态的次数:

在这里插入图片描述

20.统计出test文件中shell的种类和个数:

awk命令学习与练习--20个例子_第15张图片

你可能感兴趣的:(linux,awk)