美文网首页
linux中awk的复习

linux中awk的复习

作者: Eren_Jaeger | 来源:发表于2019-06-17 21:33 被阅读0次

awk使用格式:
awk [选项参数] '内容' '{条件} {动作} {条件} {动作}'

示例1:
在linux中提取文件系统使用率

[root@centos-linux-02 opt]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   41G  2.4G   39G    6% /
devtmpfs                 482M     0  482M    0% /dev
tmpfs                    494M     0  494M    0% /dev/shm
tmpfs                    494M  7.1M  487M    2% /run
tmpfs                    494M     0  494M    0% /sys/fs/cgroup
/dev/sda1               1014M  147M  868M   15% /boot
/dev/mapper/centos-home   20G   33M   20G    1% /home
tmpfs                     99M     0   99M    0% /run/user/0
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# df -h | awk '{print $1 "\t" $5}'
文件系统    已用%
/dev/mapper/centos-root 6%
devtmpfs    0%
tmpfs   0%
tmpfs   2%
tmpfs   0%
/dev/sda1   15%
/dev/mapper/centos-home 1%
tmpfs   0%

示例2:
在passwd文件中提取第一列和第三列

[root@centos-linux-02 opt]# awk -F ':' '{print $1 "\t" $3}' /etc/passwd
root    0
bin 1
daemon  2
adm 3
lp  4
sync    5
shutdown    6
halt    7
mail    8
operator    11
games   12
ftp 14
nobody  99
systemd-network 192
dbus    81
polkitd 999
libstoragemgmt  998
abrt    173
rpc 32
mysql   27
sshd    74
postfix 89
ntp 38
chrony  997
tcpdump 72
ning.liu    1000

示例3:
使用内置变量提取passwd文件中的第一列和第三列

[root@centos-linux-02 opt]# awk '{FS = ":"} {print $1 "\t" $3}' /etc/passwd
root:x:0:0:root:/root:/bin/bash 
bin 1
daemon  2
adm 3
lp  4
sync    5
shutdown    6
halt    7
mail    8
operator    11
games   12
ftp 14
nobody  99
systemd-network 192
dbus    81
polkitd 999
libstoragemgmt  998
abrt    173
rpc 32
mysql   27
sshd    74
postfix 89
ntp 38
chrony  997
tcpdump 72
ning.liu    1000
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# awk 'BEGIN{FS = ":"} {print $1 "\t" $3}' /etc/passwd
root    0
bin 1
daemon  2
adm 3
lp  4
sync    5
shutdown    6
halt    7
mail    8
operator    11
games   12
ftp 14
nobody  99
systemd-network 192
dbus    81
polkitd 999
libstoragemgmt  998
abrt    173
rpc 32
mysql   27
sshd    74
postfix 89
ntp 38
chrony  997
tcpdump 72
ning.liu    1000

总结:
awk的默认分隔符为“Table”键
awk最常用的参数是- F,用来指定分隔符
awk使用内置变量“FS”时,需要用在'{ }'内,并且使用方式为{FS = " "},一般会与BEGIN一起使用,以达到- F指定分隔符处理数据的效果

相关文章

网友评论

      本文标题:linux中awk的复习

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