awk
awk 基本用法
linux 系统中默认使用gawk
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v] 大参数
-F指定分隔符,-f调用脚本,-v定义变量 var=value
’ ’
引用代码块
BEGIN
初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//
匹配代码块,可以是字符串或正则表达式
{}
命令代码块,包含一条或多条命令
;
多条命令使用分号分隔
END
结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
本文简单执行一些命令,有兴趣的话可是自己下来多试试其他的
awk -F ":" '{print $1}' passwd
显示每行的第一列 awk -F ":" 'BEGIN{print "NAME"}{print $1}' passwd
awk -F ":" '{print $1}END{print "END"}' passwd
awk -F ":" 'BEGIN{print "NAME"}{print $1}END{print "END"}' passwd
awk -F ":" 'BEGIN{print "NAME"}{print NR}END{print "END"}' passwd
awk -F ":" 'BEGIN{print "NAME"}{print NR$1}END{print "END"}' passwd
awk -F ":" 'BEGIN{print "NAME"}{print }END{print "END"}' passwd
awk '/bash$/{print}'www.yingka178.com passwd
显示以 bash 结尾的行 awk -F ":" '/bash$/ www.yongshiyule178.com {print $1}www.120xh.cn 'thd178.com passwd
显示以 bash 结尾的行的第一列内容 awk -F ":" 'BEGIN{N=0}/bash$/{N++}END{print N}' passwd
显示文件 passwd 的行数 awk '/^ro/{print}' passwd
显示以 ro 开头的行 awk '/^[a-d]/{print}' passwd
显示以 a 或 b 或 c或 d 开头的行 awk -F ":" '/^a|nologin$/{print}' passwd
显示以 a 开头或以 nologin 结尾的行 awk '/^r/&&/bash$/{print}' passwd
显示以 r 开头且以 bash 结尾的行 awk '/^r/||/bash$/{print}' passwd
显示以 r 开头或以 bash 结尾的行 awk -F ":" '$7!~/bash$/{print}' passwd
显示七个字段并不以 bash 结尾的行 awk -F ":" '{print NR$0}' passwd
显示第几行及其内容,之间没有空格 awk -F ":" '{print NR,$0}' passwd
显示第几行及其内容,之间有空格 awk -F ":" '{print NF,$0}' passwd
显示每行有多少列,并显示内容
CREATE TABLE `tbl_article_info` ( `id` bigint(40) NOT NULL AUTO_INCREMENT COMMENT '主键', `title` varchar(50) NOT NULL DEFAULT '' COMMENT '文章标题', `summary` varchar(300) NOT NULL DEFAULT '' COMMENT '文章简介,默认100个汉字以内', `is_top` tinyint(1) NOT NULL DEFAULT '0' COMMENT '文章是否置顶,0为否,1为是', `traffic` int(10) NOT NULL DEFAULT '0' COMMENT '文章访问量', `create_by` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `modified_by` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改日期', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;