AWK摘记

1. 提取数据列

[root@caccloud ~]# echo one two three four five | awk '{print $4}'
four
[root@caccloud ~]# who
root     pts/0        2019-12-13 10:07 (42.100.234.199)
[root@caccloud ~]# who |awk '{print $1}'
root

[root@caccloud ~]# date
Fri Dec 13 10:14:12 CST 2019
[root@caccloud ~]# date |awk '{print $NF,$2,$3}'
2019 Dec 13
[root@caccloud ~]# date |awk '{print $NF$2$3}'
2019Dec13


[root@caccloud ~]# date |awk '{print $NF-$2-$3}'
2006
[root@caccloud ~]# date |awk '{OFS="-";print $NF,$2,$3}'
2019-Dec-13
[root@caccloud ~]# 

2. 打印简单文本

1. 添加文本更好识别数据
[root@caccloud ~]# awk 'BEGIN {print "Hello,world!"}'
Hello,world!


[root@caccloud ~]# who|awk 'BEGIN {print "Current login:"};{print $1}'
Current login:
root

2. 从冒号分隔的 /etc/passwd 文件中获取数据
[root@caccloud ~]# awk -F ":" '{print $1}' /etc/passwd |head -10
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@caccloud ~]# 

3. 筛选内容

1. 小于10的UID
[root@caccloud ~]# awk -F ":" '$3<10' /etc/passwd
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

2. 标题显示
[root@caccloud ~]# awk -F ":" 'BEGIN {print "user accounts:"} $3 < 10' /etc/passwd
user accounts:
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

3. 换行显示
[root@caccloud ~]# awk -F ":" 'BEGIN {print "user accounts:\n==============="} $3 < 10' /etc/passwd
user accounts:
===============
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@caccloud ~]# 
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。