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的行,打印整行。