AWK

AWK

格式:awk [options] ‘pattern{action}’ file

逐行处理,默认以“换行符”为标记识别每一行,以用户指定的“分隔符”将行分割成字段,字段按照顺序,分别对应到awk的内置变量中($1,$2,$3…),默认“分隔符”为空格,$0 表示整行

内置变量:
	FS:输入字段分隔符,默认为空白字符
	OFS:输出字段分隔符,默认为空白字符
	RS:输入记录分隔符(输入换行符),指定输入时的换行符
	ORS:输出记录分隔符(输出换行符),输出时用指定符号代替换行符
	NF:当前行的字段的个数(即当前行被分割成了几列),字段数量
	NR:行号,当前处理的文本行的行号
	FNR:各文件分别计数的行号
	FILENAME:当前文件名
	ARGC:命令行参数的个数
	ARGV:数组,保存的是命令行所给定的各参数
	
	自定义变量:1、[option]位置 -v var=value  2、{action}位置 { var1 = value1;var2=value2;print.....}
Action:
a、print 和 printf:printf动作与printf命令的区别:
	1、printf动作与需要格式化输出的文本字段之间需要用“,”隔开,printf命令不需要;
	2、printf命令只有一个“格式替换符”时,格式化输出的多个文本字段可以重复匹配使用这个“格式替换符”,printf动作需要相应个数的“格式替换符”
b、awk [option] '{if (条件1){动作1}elif(条件2){动作2}else{动作3}}'  file
c、awk  'BEGIN{for(i=1;i<=6;i++){print i}}'
d、awk -v i=1 'BEGIN{while(i<=5){print i ; i++}}'  
	或 awk 'BEGIN{i=1;while(i<=5){print i; i++}}' 
	或 awk BEGIN{i=1;do{print i; i++}while(i<=5)}'
e、continue、break、next、exit
Pattern
1、空模式
2、关系运算符模式: <,>,<=,>=,==,!=,~pattern(匹配正则为真),!~pattern(不匹配正则为真)
3、BEGIN/END模式
4、正则模式: awk '/正则表达式/{Action}' file
5、行范围模式:awk '/正则1/,/正则2/{Action}' file

ps: 
	1、Program中使用的是扩展正则表达式;
	2、当使用{x,y}这种次数匹配的正则表达式时,需要配合--posix选项或者--re-interval选项
数组:
awk中数组的下标默认从1开始
awk中允许数组的值为空,在引用了数组中一个不存在的元素后,数组会自动创建一个该元素,并将其赋值为空。
判断数组是否有某个下标的元素存在与否时,不应该用vars[N]=="",而应该用if(N in vars){action}else{action}这种方法
数组的下标不仅可以为“数字”,也可以为任意“字符串”
awk '{for(i=1;i<=NF;i++) {count[$i]++}}END{for(j in count){print j,count[j]}}' test
内置函数:
算数函数:rand、srand、int
	  awk 'BEGIN{srand();print int(rand()*1000)}'
字符串函数:
	sub("查找字符","替换为字符","字段")
	gsub,
	length("字段"),
	index("字符","字段")
	split("字符串","数组","分隔符") 		(split函数有返回值,值就是数组长度)
其他函数:
	asort(数组,\新数组)(不添加新数组的方式对asort函数对数组排序后,数组下标会被重置为数字,从1开始)
	asorti(数组,新数组)(对数组下标进行排序,生成一个下标组成的新数组)

三元运算符:
	判断条件?Action1:action2
打印奇数行:
	awk i=!i file
内容概要:本文详细介绍了一个基于Java和Vue的联邦学习隐私保护推荐系统的设计与实现。系统采用联邦学习架构,使用户数据在本地完成模型训练,仅上传加密后的模型参数或梯度,通过中心服务器进行联邦平均聚合,从而实现数据隐私保护与协同建模的双重目标。项目涵盖完整的系统架构设计,包括本地模型训练、中心参数聚合、安全通信、前后端解耦、推荐算法插件化等模块,并结合差分隐私与同态加密等技术强化安全性。同时,系统通过Vue前端实现用户行为采集与个性化推荐展示,Java后端支撑高并发服务与日志处理,形成“本地训练—参数上传—全局聚合—模型下发—个性化微调”的完整闭环。文中还提供了关键模块的代码示例,如特征提取、模型聚合、加密上传等,增强了项目的可实施性与工程参考价值。 适合人群:具备一定Java和Vue开发基础,熟悉Spring Boot、RESTful API、分布式系统或机器学习相关技术,从事推荐系统、隐私计算或全栈开发方向的研发人员。 使用场景及目标:①学习联邦学习在推荐系统中的工程落地方法;②掌握隐私保护机制(如加密传输、差分隐私)与模型聚合技术的集成;③构建高安全、可扩展的分布式推荐系统原型;④实现前后端协同的个性化推荐闭环系统。 阅读建议:建议结合代码示例深入理解联邦学习流程,重点关注本地训练与全局聚合的协同逻辑,同时可基于项目架构进行算法替换与功能扩展,适用于科研验证与工业级系统原型开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值