linux -awk命令

1、标准格式1是awk -F ':' '//{}' filename

【解释://里面是正则,{}里面是执行,F是指分隔符,-F "[@ \t]",就是以@、\t和空格为分隔符,全文暂统一以':'为分隔符】

例子1:

1 [root@localhost ~]# awk -F: '/news|sshd/{print $1}' /etc/passwd
2 news
3 sshd
#打印passwd文件中包含news和sshd的行的第一列

例子2:

1 [root@localhost ~]# awk -F: '/news/ {print $1}
2 /sshd/ {print $1}' /etc/passwd
3 news
4 sshd
#若包含了两个组合(正则和执行内容),则需要分行表示,例2是例1的另一种写法

2、标准格式2是awk -F ':' 'BEGIN {1} /2/ {3} END {4}' filename

【解释:1是读取内容前的操作,2是正则,3是读取内容并执行的操作,4是执行内容后的操作】

例子3:

1 [root@localhost ~]# awk -F: 'BEGIN {print "begin";} /news|sshd/ {print $1} END {print "end";}' /etc/passwd
2 begin
3 news
4 sshd
5 end
#这里就是在例1的基础上执行前打印begin,执行后打印end

例子4:

1 awk -F: 'BEGIN {print "begin";} $1~/news|sshd/ {print} END {print "end";}' /etc/passwd
2 begin
3 news:x:9:13:news:/etc/news:
4 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
5 end
#//里面只能写正则表达式,在此例中$1~/news/sshd/,就是第一列满足news/shhd的行,打印整行。

 

posted @ 2016-10-09 15:45  草莓干123456  阅读(191)  评论(0编辑  收藏  举报