awk的PATTERN表示方法:

1,正则表达式,格式为/regex/

以冒号为分隔符,显示/etc/passwd以r开头的行的第一段

[root@wei awk]# awk -F: '/^r/{print $1}' /etc/passwd
root

以冒号为分隔符,显示/etc/passwd以nologin结尾的行的第一段

[root@wei awk]# awk -F: '/nologin$/{print $1}' /etc/passwd
bin
daemon
adm
lp
mail

以冒号为分隔符,显示/etc/passwd以r或者h开头的行的第一段

[root@wei awk]# awk -F: '/^[rh]/{print $1}' /etc/passwd
root
halt
hei

写出/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/passwd
polkitd 999
saslauth 998
hei 1200
wei 1001

3 ,指定范围,格式为pattern,pattern2

以冒号为分隔符,显示uid=0到最后一个字段为nologin结尾中间所有的用户名称,uid及shell

[root@wei awk]# awk -F: '$3==0,$7~"nologin$"{print $1,$3,$7}' /etc/passwd
root 0 /bin/bash
bin 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/passwd
username  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/passwd
username  uid       shell               
root      0         /bin/bash 
bin       1         /sbin/nologin
END OFFILE...

最新文章

  1. openstack-lanch an instance and nova compute log analysis
  2. 常用CSS样式
  3. 【原】react+redux实战
  4. 【python】 urllib.unquote()
  5. 160923、项目管理模式:如何去除SVN标记
  6. Hdfs增量导入小文件合并的思路
  7. 【转】如何设置Android软键盘的默认不弹出?
  8. Asp.net 定时写入文本记录
  9. 新浪微博2.5.1 for Android 去广告
  10. mvc4+jquerymobile页面加载时无法绑定事件
  11. C#/.NET笔试题
  12. 深入探究VC —— 编译器cl.exe(2)
  13. 图片,音频资源预加载和文档dom加载
  14. linux的用户,群组和其他用户
  15. Objective-C方法的实现
  16. Groovy脚本检查html坏链接
  17. 动态规划-数位DPwindy
  18. Python的基础详情
  19. HTML&amp;javaSkcript&amp;CSS&amp;jQuery&amp;ajax(九)
  20. 【转】MySQL实现Oracle里的 rank()over(ORDER BY) 功能

热门文章

  1. LG2893/POJ3666 「USACO2008FEB」Making the Grade 线性DP+决策集优化
  2. web框架--tornado框架之模板引擎继承
  3. scrapy机制mark(基于twisted)
  4. 原生js-input框全选
  5. Python数据分析与爬虫
  6. [LeetCode] 212. Word Search II 词语搜索之二
  7. Eureka工作原理分析
  8. java编程思想之垃圾收集
  9. IOI 2013 袋熊(线段树+分块+决策单调性)
  10. github 白嫖记(一)