awk

作者: DB哥 | 来源:发表于2019-09-29 08:38 被阅读0次

Linux System Environment

[root@commond ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)                        #==》系统版本
[root@commond ~]# uname -r
3.10.0-862.el7.x86_64                                       #==》内核版本
[root@commond ~]# uname -m
x86_64                                                     #==》系统架构
[root@commond ~]# echo $LANG
en_US.UTF-8                                                #==》系统字符集
[root@commond ~]# awk - -version
GNU Awk 4.0.2                                              #==》awk版本

awk功能

1、对数据扫描并进行分析处理
2、截取列

awk格式

awk  '{}'  filename
awk  'BGEIN{}  {}  END{}'

awk 参数

1、-F        #==》指定分隔符
2、NR            #==》显示行号
3、NF            #==》浏览记录域的个数
4、$NF           #==》打印最后一列
4、$0            #==》打印所有
3、$1            #==》显示第一列,$2显示第二列,以此类推

一、awk截取列

[root@commond ~]# tail -2 /etc/passwd | awk -F "[:]+" '{print $1}'
oldboy
user01

二、显示列的个数

[root@commond ~]# tail -2 /etc/passwd | awk -F "[:]+" '{print $0}'
oldboy:x:1000:1000:oldboy:/home/oldboy:/bin/bash
user01:x:1001:1001::/home/user01:/bin/bash
[root@commond ~]# tail -2 /etc/passwd | awk -F "[:]+" '{print NF}'
7
6

三、打印以d开头或以01结尾的字符串

[root@commond ~]# ls -l /mnt/ | awk '/^d/'
drwxr-xr-x 2 root root     89 Jun 18 11:44 backup01
[root@commond ~]# ls -l /mnt/ | awk '/01$/'
drwxr-xr-x 2 root root     89 Jun 18 11:44 backup01

四、打印倒数的列

[root@commond tmp]# tail -2 /etc/passwd | awk -F "[:]+" '{print $NF}'
/bin/bash
/bin/bash
[root@commond ~]# tail -2 /etc/passwd | awk -F "[:]+" '{print $(NF-1)}'
/home/oldboy
/home/user01

五、获取第1行到第5行的列

[root@commond ~]# awk -F "[:]+" 'NR>=1 && NR<=5 {print NR,$1,"|",$2}' /etc/passwd
1 root | x
2 bin | x
3 daemon | x
4 adm | x
5 lp | x

六、截取第1行和第3行的列

[root@commond ~]# awk -F "[:]+" 'NR==1 || NR==3 {print NR,$1,"|",$2}' /etc/passwd
1 root | x
3 daemon | x

七、添加BEGIN和END

[root@commond ~]# cat /etc/passwd | awk -F : 'BEGIN{print "name,shell"} NR>=1 && NR<=3{print $1,$NF} END{print "end"}' 
name,shell
root /bin/bash
bin /sbin/nologin
daemon /sbin/nologin
end

八、统计网络连接状态

[root@commond ~]# ss -a | awk -F "[ ]+" '{print $2}' | sort -n | uniq -c
     88 ESTAB
     33 LISTEN
      1 State
     56 UNCONN
[root@commond ~]# ss -an | awk '{S[$2]++} END{for(a in S) {print S[a],a}}'
33 LISTEN
88 ESTAB
1 State
56 UNCONN

九、统计文本行数

[root@commond ~]# awk '{count++;} END{print count}' /etc/passwd
22

相关文章

  • 18-文本处理三剑客之awk

    本章内容 ◆ awk介绍◆ awk基本用法◆ awk变量◆ awk格式化◆ awk操作符◆ awk条件判断◆ aw...

  • 2017 09-04 AWK

    本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...

  • 【技术案例】跟老男孩学运维-awk项目案例

    一个awk数组应用案例 [TOC] 0.技术点: awk awk数组 awk判断 awk数组赋值 awk函数spl...

  • awk

    awk:报告生成器,格式化文本输出 内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 a...

  • awk

    Linux System Environment awk功能 awk格式 awk 参数 一、awk截取列 二、显示...

  • 笔记-awk

    1.Awk基础介绍 2.awk语法格式 2.Awk工作原理 3.Awk内部变量 4.Awk格式输出 5.Awk模式...

  • awk用法详解

    awk 用法 awk ' pattern {action} ' 1、awk '/101/' file ...

  • Day64-shell编程_正则表达式_awk

    1.Awk基础介绍 2.Awk工作原理 3.Awk内部变量 4.Awk格式输出 5.Awk模式匹配 5.1符号 ...

  • linux-awk

    linux-awk awk基本结构 awk ‘BEGIN{ print “start”} pattern { co...

  • awk小说

    awk awk脚本的结构基本如下: awk ' BEGIN{ print "start" } patern { c...

网友评论

      本文标题:awk

      本文链接:https://www.haomeiwen.com/subject/gyzhyctx.html