awk脚本
awk脚本是一个可执行的文件,常习惯以.awk命名。
结构:
$test.awk
#!/bin/awk -f #脚本系统中awk的位置
BEGIN{} #脚本主体之前,执行些什么。该行内的语句,可以只执行一次
{} #脚本主体,此中的语句,会根据awk要处理的对象文本中的行数,以及匹配条件,执行零次或多次
END{} #本主体之后,执行些什么。(该部分与BEGIN类似,只是相对于主体的位置不同)。
执行awk脚本的命令:
awk -f awk-script-file input-file
截取/etc/passwd的五行存为5.txt作为例子:
_spotlight:*:89:89:Spotlight:/var/empty:/usr/bin/false
_tokend:*:91:91:Token Daemon:/var/empty:/usr/bin/false
_securityagent:*:92:92:SecurityAgent:/var/db/securityagent:/usr/bin/false
_calendar:*:93:93:Calendar:/var/empty:/usr/bin/false
_teamsserver:*:94:94:TeamsServer:/var/teamsserver:/usr/bin/false
例子:以:为分隔符,打印被解析文件的第一,四,五列。
➜ awkstudy cat one.awk
#!/bin/awk -f
BEGIN {
FS=":"
}
{ print $1 " " $4 " " $5 }
END{
print "ok"
}
➜ awkstudy awk -f one.awk 5.txt
_spotlight 89 Spotlight
_tokend 91 Token Daemon
_securityagent 92 SecurityAgent
_calendar 93 Calendar
_teamsserver 94 TeamsServer
ok
➜ awkstudy