三剑客之 awk

命令概述

awk	---	pattern scanning and processing language
模式扫描(处理文件每一行信息) 过程语言(一门脚本语言 逻辑语句(循环/判断))

作用说明(对文件逐行的读入)

1)擅长对文件列进行操作
2)擅长统计分析数据信息

命令语法结构

awk [参数] '模式{动作信息}'  文件信息

注:
  注意大小写

高级用法

1)awk模式概念
	普通模式
		利用正则进行匹配/利用行号进行匹配/利用字符进行匹配

	特殊模式:  
		1)BEGIN用法
			1.在处理文件之前先做的事情 (准备工作)
			2.将awk作为计算机使用
			3.进行变量设定

		2)END用法
			1.在处理文件之后要做的事情 (后续工作)
			2.输出结果信息

		3)统计分析日志公式信息

		内置变量
			NR	--- 表示行号
			NF	--- 表示字段信息(最后一列)
			FS	--- 表示分隔符字段信息

普通用法

根据内容
awk '/内容/{print $列数}' 文件名称

在这里插入图片描述

根据行号
awk 'NR==行数 {print $列数}' 文件名称

	$0			--- 全列
	$n 			--- 第n列
	$x,$y		--- '逗号'表示第x列到第y列之间有'空格'
	$x"空格"$y	---  '双引号'表示第x列到第y列之间有'空格'

在这里插入图片描述

根据第n列某个信息取出
awk '$n~/信息/{print $列数}' 文件名称

注:
  $n!~ — 表示第n列查找出来的信息进行取反

在这里插入图片描述

指定某个或多个符号为分隔符进行分列
awk -F '[符号1符号2]+' '{print $列数}' 文件信息

注:
  利用-F指定列分隔符, 结合正则可以识别多个分隔符号

在这里插入图片描述

对查找出来的信息进行替换
awk '$n~/信息/{gsub(/替换的信息/,"要替换成什么",$n);print $列数}' 文件名称

注:
  gsub(/替换的信息/,“要替换成什么”,$n替换的第几列信息)

在这里插入图片描述

高级用法

1)BEGIN用法

1.在处理文件之前先做的事情
awk 'BEGIN{print "姓","名","id","金额"}{print $n}' 文件信息 |column -t 

在这里插入图片描述

2.将awk作为计算机使用
awk 'BEGIN{print 数值计算}'

在这里插入图片描述

3.进行变量设定
		# awk 'BEGIN{old="oldboy";print old}' 
			oldboy
		# awk   'BEGIN{FS=":"}{print $2}' test12.txt 
			02
		# awk -vFS=":"  '{print $2}' test12.txt 
			02

2)END用法

1.输出结果信息
		# awk 'END{print "老男孩员工捐款记录表"}{print $0}' awk.txt|column -t
			Zhang	Dandan  	41117397  		:250:100:175
			Zhang	Xiaoyu  	390320151 		:155:90:201
			Meng 	Feixue  	80042789  		:250:60:50
			Wu   	Waiwai  	70271111  		:250:80:75    Xiaoai
			Liu  	Bingbing	41117483  		:250:100:175
			Wang 	Xiaoai  	3515064655		:50:95:135
			Zi   	Gege    	1986787350		:250:168:200
			Li   	Youjiu  	918391635 		:175:75:300
			Lao  	Nanhai  	918391635 		:250:100:175
			老男孩员工捐款记录表

3)统计分析日志公式信息

	awk '/日志内容/{i=i+1;print i}' 文件名称

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值