zoukankan      html  css  js  c++  java
  • linux awk

    *注意: awk的表达式需要使用单引号''

    awk NR NF

    NR (number of row)表示行

    NF (number of field) 表示列(默认值为最后一列)

    先来看一个实例:

    获取剩余内存空间大小

    [root@rhel6 ~]# free -m
                 total       used       free     shared    buffers     cached
    Mem:          3828        791       3037          0        110        494
    -/+ buffers/cache:        186       3642
    Swap:         5999          0       5999
    [root@rhel6 ~]# free -m | awk 'NR==3 {print $NF}'
    3642

    NF-5 == -6也就是倒数第四列

    [root@rhel6 ~]# free -m
                 total       used       free     shared    buffers     cached
    Mem:          3828        791       3037          0        111        494
    -/+ buffers/cache:        186       3642
    Swap:         5999          0       5999
    [root@rhel6 ~]# free -m | awk 'NR==2 {print $(NF-5)}'
    3828

    awk -F

    格式:-F'[:#/@¥$%]'   可以定义多个分隔符, 支持正则表达式     -F '[      :]+'  使用空格和:分割,+表示可以有连续的空格或:

    用法:awk -F"[@/t]" '{print $1,$2,$3}' <test

         以@,Tab键分割test文件的每一行,并输出第一、二、三列。

    案例: 获取每个分区的Use空间

    [root@rhel6 script]# df -Ph
    Filesystem                Size  Used Avail Use% Mounted on
    /dev/mapper/VG01-lv_root  3.8G  510M  3.1G  14% /
    tmpfs                     1.9G     0  1.9G   0% /dev/shm
    /dev/sda1                 477M   88M  364M  20% /boot
    /dev/mapper/VG01-lv_home  1.9G  3.7M  1.8G   1% /home
    /dev/mapper/VG01-lv_opt   1.9G  139M  1.7G   8% /opt
    /dev/mapper/VG01-lv_tmp   3.8G  7.9M  3.6G   1% /tmp
    /dev/mapper/VG01-lv_usr   4.7G  2.0G  2.6G  44% /usr
    /dev/mapper/VG01-lv_var   4.7G  509M  4.0G  12% /var
    [root@rhel6 script]# df -h | awk 'NR==3 {print $(NF-1)}' | awk -F '[%]' '{print $1}'
    14
    [root@rhel6 script]# 

    过滤出mysql端口

    [root@rhel6 script]# netstat -lntup | grep 3306 | awk -F "[ :]+" '{print $5}'
    3306
    [root@rhel6 script]# netstat -lntup | grep 3306 
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      16463/mysqld        
    [root@rhel6 script]# 

    awk过滤

    通过 /xxx|xxx|xxx/ 来进行过滤

    [root@rhel6 script]# df -hP | awk -F '%' '/usr|tmp|var/{print $1}'
    tmpfs                     1.9G     0  1.9G   0
    /dev/mapper/VG01-lv_tmp   3.8G   81M  3.6G   3
    /dev/mapper/VG01-lv_usr   4.7G  2.0G  2.5G  44
    /dev/mapper/VG01-lv_var   4.7G  573M  3.9G  13
    [root@rhel6 script]# df -hP | awk -F '%' '/usr|tmp|var/{print $2}'
     /dev/shm
     /tmp
     /usr
     /var
    [root@rhel6 script]# 
  • 相关阅读:
    Android : iperf-2.0.4 网络测试工具
    Android : SELinux 简析&修改
    Android : 修改内核源码 and 编译、打包成新的boot.img
    Bluedroid: 音频数据的传输流程
    Bluedroid: 蓝牙协议栈源码剖析
    【Java】 剑指offer(54) 二叉搜索树的第k个结点
    【Java】 剑指offer(53-3) 数组中数值和下标相等的元素
    【Java】 剑指offer(53-2) 0到n-1中缺失的数字
    【Java】 剑指offer(53-1) 数字在排序数组中出现的次数
    【Java】 剑指offer(52) 两个链表的第一个公共结点
  • 原文地址:https://www.cnblogs.com/vincenshen/p/6559259.html
Copyright © 2011-2022 走看看