
Linux shell awk模式使用
发布日期:2021-05-07 16:40:03
浏览次数:13
分类:原创文章
本文共 1686 字,大约阅读时间需要 5 分钟。
awk的PATTERN表示方法:
1,正则表达式,格式为/regex/
以冒号为分隔符,显示/etc/passwd以r开头的行的第一段
[root@wei awk]# awk -F: '/^r/{print $1}' /etc/passwdroot
以冒号为分隔符,显示/etc/passwd以nologin结尾的行的第一段
[root@wei awk]# awk -F: '/nologin$/{print $1}' /etc/passwdbindaemonadmlpmail
以冒号为分隔符,显示/etc/passwd以r或者h开头的行的第一段
[root@wei awk]# awk -F: '/^[rh]/{print $1}' /etc/passwdroothalthei
写出/etc/的软链接的名字
[root@wei awk]# ls -l /etc/ |awk '/^l/{print $NF}'/usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png../boot/grub2/grub.cfg
2,表达式,有下面操作符组成的表达式
awk的操作符
1 ,算术操作符
-x 负值
+x 转换为数值,正值
x^y x**y 次方
x/y
x*y
x-y
x+y
x%y
2 ,字符串操作符
+:实现字符串连接 "ab"+"cd" abcd
3 ,赋值操作符
=
+=
-+
*=
、=
%=
^=
**=
4 ,比较操作符
x<y
x<=y
x>y
x>=y
x==y
x!=y
x~y:x为字符串,y为模式,如果x可以被模式匹配则为真,否则为假
x!~y
5 ,逻辑关系符
&& 与
|| 或者
显示uid大于等于500的用户的及uid
[root@wei awk]# awk -F: '$3>=500{print $1,$3}' /etc/passwdpolkitd 999saslauth 998hei 1200wei 1001
3 ,指定范围,格式为pattern,pattern2
以冒号为分隔符,显示uid=0到最后一个字段为nologin结尾中间所有的用户名称,uid及shell
[root@wei awk]# awk -F: '$3==0,$7~"nologin$"{print $1,$3,$7}' /etc/passwdroot 0 /bin/bashbin 1 /sbin/nologin
4 ,BEGIN/END, 特殊模式
BEGIN表示awk进行处理前执行一次操作
END表示awk处理完最后一行结束前执行一次操作
使用BEGIN打印表头
[root@wei awk]# awk -F: 'BEGIN{printf "%-10s%-10s%-20s\n","username","uid","shell"}$3==0,$7 ~ "nologin$"{printf "%-10s%-10s%-10s\n",$1,$3,$7}' /etc/passwdusername uid shell root 0 /bin/bash bin 1 /sbin/nologin
使用END打印表尾
[root@wei awk]# awk -F: 'BEGIN{printf "%-10s%-10s%-20s\n","username","uid","shell"}$3==0,$7 ~ "nologin$"{printf "%-10s%-10s%-10s\n",$1,$3,$7}END{print "END OFFILE..."}' /etc/passwdusername uid shell root 0 /bin/bash bin 1 /sbin/nologinEND OFFILE...
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年03月28日 12时11分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Netty4服务端入门代码示例
2019-03-04
操作系统前传第六课--开发中的辅助工具
2019-03-04
Linux系统编程44 信号 - 信号的响应过程分析!!!
2019-03-04
VL53L0x TOF激光测距的 stm32 HAL库驱动代码
2019-03-04
怎么玩LOG4J
2019-03-04
Oracle创建用户,分配表空间
2019-03-04
自定义标签(JSP2.0)简单标签
2019-03-04
MyBatis自定义类型转换器
2019-03-04
机器学习(湖北师范大学教程)-极大似然估计算法
2019-03-04
读《红楼梦》有感
2019-03-04
【C# 重构】—参数化查询, 需要参数,但未提供该参数
2019-03-04
决策树(二)—— ID3和C4.5
2019-03-04
MySQL~教你满分回答什么是数据库索引? 索引的数据结构是什么? 什么是事务?
2019-03-04
操作系统~进程的状态、转换、控制
2019-03-04
操作系统~线程概念以及多线程模型
2019-03-04
数据结构~缓存淘汰算法--LRU算法(Java的俩种实现方式,时间复杂度均为O(1))
2019-03-04
Python:函数 ----》装饰器函数
2019-03-04
Python:面向对象
2019-03-04
Python练习题 :随机生成一批数
2019-03-04
Spring源码:prepareBeanFactory(beanFactory);方法
2019-03-04