awk详解

awk.png

——————————

课外练习

只处理用户ID为奇数的行,并打印用户名和ID号

[root@localhost ~]# awk -F: '{if($3%2!=0) {print $1,$3}}' /etc/passwd

显示系统的普通用户,并打印用户及ID

[root@localhost ~]# awk -F: '{if($3>=500) {print $1,$3}}' /etc/passwd

显示系统用户是“/bin/bash"的用户,并打印用户名

[root@localhost ~]# awk -F: '/\/bin\/bash$/{print $1}' /etc/passwd

统计普通用户的个数

[root@localhost ~]# awk -F: -v i=0 '{if($3>=500) {i++}}END{print i}' /etc/passwd

统计文本的总行数

[root@localhost ~]# awk -v i=0 '{i++}END{print i}' /etc/passwd

利用awk显示文件名

[root@localhost ~]# awk 'END{print FILENAME}' /etc/passwd

格式化输出统计数据

[root@localhost ~]# awk -F: '{printf "UID: %-5s  NAME: %3s\n",$3,$1}' /etc/passwd

只显示ID为1000的用户的相关信息

[root@localhost ~]# awk -F: '{if($3==1000) {print $0}}' /etc/passwd

查找“root”关键字的行

[root@localhost ~]# awk '/root/{print $0}' /etc/passwd

利用awk模拟tail -1 的效果

[root@localhost ~]# awk 'END{print $0}' /etc/passwd

打印一个表头,并且打印用户名和ID

[root@localhost ~]# awk -F: 'BEGIN{printf "USERNAME      UID\n------------------\n"}{printf "%-10s %5s\n",$1,$3}' /etc/passwd

打印一个表头和表尾,并打印用户名,ID,及shell

[root@localhost ~]# awk -F: 'BEGIN{printf "USERNAME         UID  SHELL\n"}{printf "%-13s %5s %-s\n",$1,$3,$7}END{printf "USERNAME         UID  SHELL\n"}' /etc/passwd

对文本中的字段进行字符个数统计

[root@localhost ~]# awk '{for(i=1;i<=NF;i++) {count[$i]++}}END{for(k in count) {print k,count[k]}}' /etc/fstab

打印字符个数大于等于8的字段

[root@localhost ~]# awk '{if(NF>8) {print $0}}' /etc/fstab

统计系统中shell的类型,并打印shell引用的次数

[root@localhost ~]# awk -F: '{count[$7]++}END{for(i in count) {print i,count[i]}}' /etc/passwd

统计fstab文件中,各文件系统被引用的次数

[root@localhost ~]# awk '/^[^#]/{filesystem[$3]++}END{for(i in filesystem) {print i,filesystem[i]}}' /etc/fstab

统计系统中各TCP连接状态的数量

[root@localhost ~]# netstat -tan | awk '/^tcp/{split($5,ip,":");if(ip[1]=="")next;count[ip[1]]++}END{for(i in count) {print i,count[i]}}'

统计web站点的用户访问次数

[root@localhost ~]# awk '/^[^#]/{filesystem[$3]++}END{for(i in filesystem) {print i,filesystem[i]}}' /etc/fstab

统计正与系统建立连接的IP地址(ESTABLISHED),并统计建立连接的连接数量

[root@localhost ~]# ss -tan | awk '/^ESTAB/{split($5,ip,":");state[ip[1]]++}END{for(i in state) {print i,state[i]}}'

将文本的重复行去掉

[root@localhost ~]# awk '!a[$0]++' test.txt

原创文章,作者:M20-1--孔祥文,如若转载,请注明出处:http://www.178linux.com/49081

(0)
M20-1--孔祥文M20-1--孔祥文
上一篇 2016-09-25 14:53
下一篇 2016-09-25 16:46

相关推荐

  • Linux基础概念

    一、计算机的组成及其功能。 计算机机系统由五部分组成:运算器、控制器、存储器、输入设备、输出设备,遵从冯.诺依曼体系结构。具体的功能如下 : CPU   :     运算器(处理数据)、控制器(指令控制),另有寄存器、缓存(缓冲数据,内部缓存非  常昂贵); 存储器:内存即RAM(随机访问…

    Linux干货 2016-10-09
  • week1

    一,计算机的组成 五大基本部件 运算器:  算术运算,逻辑运算等各种各样的运算的, 控制器:  控制总线的使用权限,内存寻址 控制权限访问是读还是写               寄存器,内部的存储器,都是用来存储数据的  加速和提高cpu性能   &…

    Linux干货 2016-10-28
  • 为什么系统可执行文件多用相对路径创建链接

    为什么系统可执行文件多用相对路径创建链接 使用链接有什么好处 作为一个linux初学者,我们首先要知道,在linux中使用链接的好处是什么。总结下来一共有几个: 使用链接可以使我们在访问文件时省去一大笔敲文件路径的时间。对于我们运维工程师来说,我们经常要查看某个文件或者访问某个目录,再进行该项工作时,往往需要敲很多路径才能找到我们想访问的文件,创建链接可以让…

    Linux干货 2017-07-23
  • 进程工具总结

    一、top命令         top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处…

    Linux干货 2016-09-12
  • 从Linux小白到大牛——与狼共舞的日子4

    马哥教育网络班21期+第4周课程练习 1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]# cp -a /etc/skel/ /home/tuser1/ [root@localhost&n…

    Linux干货 2016-08-02
  • Linux磁盘管理基础

    Linux磁盘管理基础 硬盘结构 文件系统与MBR、GTP 磁盘管理三步骤:分区、格式化、挂载 mount 硬盘结构 硬盘的基本组成材质是盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道,不同盘片相同半径的磁道所组成的圆柱称为柱面,每个磁道被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存…

    Linux干货 2016-09-01

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-26 09:49

    图画的不错,赞一个,awk是一个很方便的文本格式化工具,这也是以后面试题必会遇到的面试题,希望下来多加练习,熟练掌握,