Shell三剑客:awk(模式(正则表达式)和动作)

一、运算符

= += -= *= /= %= ^= **= 

赋值

?: 

C条件表达式

|| 

逻辑或

&& 

逻辑与

~ 和 !~ 

匹配正则表达式和不匹配正则表达式

< <= > >= != == 

关系运算符

空格 

连接

+ - 

加,减

* / % 

乘,除与求余

+ - ! 

一元加,减和逻辑非

^ *** 

求幂

++ -- 

增加或减少,作为前缀或后缀

字段引用

in 

数组成员

二、示例

#过滤第一列大于2的行
[root@localhost ~]# awk '$1>2' log.txt 
3 Are you like awk
This's a test
10 There are orange,apple,mongo

#过滤第一列等于2的行
[root@localhost ~]# awk '$1==2 {print $1,$3}' log.txt 
2 is

#过滤第一列大于2并且第二列等于'Are'的行
[root@localhost ~]# awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt 
3 Are you


[root@localhost ~]# awk -F: '$3 == 0' passwd.txt 
root:x:0:0:root:/root:/bin/bash

[root@localhost ~]# awk -F: '$3 < 10' passwd.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

[root@localhost ~]# awk -F: '$3 < 5' passwd.txt 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@localhost ~]# awk -F: '$NF == "/bin/bash"' passwd.txt 
root:x:0:0:root:/root:/bin/bash

[root@localhost ~]# awk -F: '$1 == "root"' passwd.txt 
root:x:0:0:root:/root:/bin/bash

[root@localhost ~]# awk -F: '$1 ~ /roo/' passwd.txt 
root:x:0:0:root:/root:/bin/bash

[root@localhost ~]# awk -F: '$1 !~ /roo/' passwd.txt 
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin10

[root@localhost ~]# df -P | grep '/' | awk '$4 > 25000'
devtmpfs                 485816       0  485816   0% /dev
tmpfs                    497836       0  497836   0% /dev/shm
tmpfs                    497836   13968  483868   3% /run
tmpfs                    497836       0  497836   0% /sys/fs/cgroup
/dev/mapper/centos-root 6486016 1898056 4587960  30% /
/dev/sda1               1038336  140336  898000  14% /boot
tmpfs                     99568       0   99568   0% /run/user/0

 

 

 

 

相关推荐

  1. Linux剑客指令表达式

    2023-12-24 05:52:01       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-24 05:52:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-24 05:52:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-24 05:52:01       82 阅读
  4. Python语言-面向对象

    2023-12-24 05:52:01       91 阅读

热门阅读

  1. nacos和gateway部署实践踩的坑

    2023-12-24 05:52:01       57 阅读
  2. IntelliJ IDEA 2023.3.2

    2023-12-24 05:52:01       50 阅读
  3. SQLITE如何同时查询出第一条和最后一条两条记录

    2023-12-24 05:52:01       58 阅读
  4. Django Rest Framework框架的安装

    2023-12-24 05:52:01       63 阅读
  5. Android - 代码执行shell命令的应用

    2023-12-24 05:52:01       59 阅读
  6. odoo17核心概念——env

    2023-12-24 05:52:01       58 阅读
  7. 记录 - SpringBoot 自动配置的坑 isXXX失效

    2023-12-24 05:52:01       50 阅读