shell编程教学(三)| Linux三剑客之awk - Go语言中文社区

shell编程教学(三)| Linux三剑客之awk


一、awk 的功用

以字段为单位进行处理(其实就是把一行的数据分割,然后进行处理)

二、awk常用命令

注:其中的passwd是当前目录下的一个文件名

有任何疑惑请看“三、awk常用命令演示”

awk '{print FILENAME}' passwd     >> 逐行打印文件名称

awk -F : '{print NF}' passwd      >> 以:为分隔符,列出列数

awk '{print NR}' passwd           >> 列出行数

awk 'BEGIN{a=5;print a+12}'       >> 加法运算

awk '/^ro/{print}' passwd         >> 打印以ro开头的行

awk '/^a|bash$/{print}' passwd    >> 打印以a开头或以bash结尾的行

awk '!/^a|bash$/' passwd          >> 打印不以a开头以及以bash结尾的行

awk -F : '/^[a-d]/{print $1,$6}' passwd  >> 以:为分隔符,打印以a-d开头的行中的第1,6列

awk -F : '!/^[a-d]/{print $1,$6}' passwd  >> 以:为分隔符,打印不以a-d开头的行中的第1,6列

awk -F : '$6~/bin$/{print $1,$6}' passwd   >> 打印以:为分隔符,第六列以bin结尾的行中的第1,6列

awk -F : '$7!~/nologin$/{print $1,$7}' passwd   >> 不打印以:为分隔符.第七列以nologin结尾的行的第1,7列

三、awk常用命令演示

演示环境:
在/mnt下的一个文件passwd
在这里插入图片描述
命令演示

[root@allen mnt]# awk '{print FILENAME}' passwd

在这里插入图片描述

[root@allen mnt]# awk -F : '{print NF}' passwd

在这里插入图片描述

[root@allen mnt]# awk '{print NR}' passwd

在这里插入图片描述

[root@allen mnt]# awk 'BEGIN{a=5;print a+12}'

在这里插入图片描述

[root@allen mnt]# awk '/^ro/{print}' passwd

在这里插入图片描述

[root@allen mnt]# awk '/^a|bash$/{print}' passwd

[root@allen mnt]# awk '!/^a|bash$/' passwd

在这里插入图片描述
在这里插入图片描述

[root@allen mnt]# awk -F : '/^[a-d]/{print $1,$6}' passwd

[root@allen mnt]# awk -F : '!/^[a-d]/{print $1,$6}' passwd

在这里插入图片描述
在这里插入图片描述

[root@allen mnt]# awk -F : '$6~/bin$/{print $1,$6}' passwd

[root@allen mnt]# awk -F : '$7!~/nologin$/{print $1,$7}' passwd

在这里插入图片描述
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44297303/article/details/88203436
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢