awk 语法格式
awk {参数} 'pattern {action}' {filename}
常用参数:
-F #指定分隔符
-v var=varlue #用户设定的变量
pattern(模式)常用有以下几种格式:
/正则表达式/ #如/user/ ,/^user/
关系表达式 #如NR==1 || NR==2,其中NR是awk工具中的特定变量,是行号的意思
BEGIN,END 模块 #其中BEGIN模块是awk程序开始前的动作,BEGIN模块后面跟动作模块,END模块是awk程序结束后的动作。
action (动作) 主要为一个或多个命令,函数,表达式等 用;隔开。
用几个例子帮助理解
awk -F : '/root/ {print $0}' /etc/passwd #打印出/etc/passwd 中包含root的行,$0指整个文件,$1是以分隔符隔开的第一个字段
awk -F '[:\t]' 'print {$1,$3}' #以:,制表符,空格为分隔符,并打印出第一,三字段(多个分隔符用[]括起来)
ls -l filename|awk 'BEGIN {size=0;} {size=$5;} END {print "size is:",size}' #统计filname的大小
awk '{gsub("a","A");print}' filename #把filename中的a替换成A,打印出来