简介
awk逐行读入文本,以空格为默认分隔符切片,对各部分分析处理
使用方法
awk 'pattern {action}' filename awk 'pattern {action} pattern {action}...' filename
awk -F ":" 'BEGIN {print "name,shell"} {print $1","$7} END{print "myself,/bin/bash"}
awk -F : '/root/ [{print $0}]' /etc/passwd
awk内置变量
ARGC 命令行参数个数 ARGV 命令行参数排列 FILENAME awk浏览的文件名 FS 设置输入域分隔符,等价于命令行 -F选项 NF 浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符
awk编程
{action}中可以定义变量,action中可以有多条语句,各语句之间以";"划分
awk -F : '{count++;print $1","count} END{print count}' /etc/passwd
awk -F : '{printf("%s,%d ",$1,++count)} END{print count}' /etc/passwd
条件语句:
就是把一个完整的if elseif else当做一个action来写
{ if(expression) {statement;statement;... ...} } { if(expression) {statement;} else {statement2;} } { if(expression) {statement1;} else if(expression1) {statement2;} else {statement3;} }
其他语句支持:while、do/while、for、break、continue