博客
关于我
Linux shell awk模式使用
阅读量:346 次
发布时间:2019-03-04

本文共 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...

 

转载地址:http://cidr.baihongyu.com/

你可能感兴趣的文章
java 多态
查看>>
java 多态类型转换
查看>>
java ==和equals
查看>>
java 接口(Interface)多态特性
查看>>
搜集整理随机产生人的姓名的2种方法
查看>>
最简单的Socket程序[入门篇]
查看>>
VS2005图标默认存放位置
查看>>
常用正则表达式
查看>>
C#中换行的代码
查看>>
用正则表达式过滤多余空格
查看>>
XML:采用XHTML和CSS设计可重用可换肤的WEB站点
查看>>
U盘“无法识别的USB设备”解决办法
查看>>
less简介、less安装、编译、less语法之变量、嵌套、类混入、函数混入、运算、less文件导入
查看>>
【springmvc】传值的几种方式&&postman接口测试
查看>>
泳道图简介
查看>>
Tomcat6中web项目部署路径webapps和wtpwebapps的区别
查看>>
Java判断字符串是否为金额
查看>>
CodeCombat代码全记录(Python学习利器)--安息之云山峰(第四章)代码9
查看>>
某公司运维岗位笔试题8
查看>>
skyfans之每天一个Liunx命令系列之二:uptime
查看>>