惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
量子位
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
博客园_首页
博客园 - 【当耐特】
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC

博客园_首页

Java + Spring实现Hermes Agent之龙虾、Skills、Mcp和沙箱代码执行环境思路 轨迹的蓝图:方程求解与交点计算 Agent新技术分享-Forge论文已被ACM接受 PowerMem 记忆系统的遗忘设计,从神经元到代码工程 我用了FastApiAdmin后,连夜把踩过的坑都整理出来了 一个程序员眼中的 AI 核心概念,讲透 LLM 、Agent 、MCP 、Skill 、RAG... 网络安全在线就能打的内网靶场推荐 & Dawn Breaker 单域靶场 WP CTF 中如何用提示词发挥大模型的最大实力:从聊天助手到大手子 PyTorch KernelAgent 源码解读 ---(6)--- Composer 高光谱拼接算法(一)扫推式成像和航带拼接算法 一文看懂fofa常用语法,告别混淆,精准打击! 从零搭建量化投资系统:用 Qlib 一行代码搞定均线分析 企业 AI 落地,第一件事不是买模型,而是建好企业知识库 如何在Oracle Agent Factory中配置国内厂商的LLM? Codex 换模型太麻烦?这个开源桌面工具帮你一键切换 Avalonia中的动画 2026软考|十大管理超全通俗笔记,备考闭眼记! rv1126b内置phy接hub交换机芯片 React 可拖拽列宽 + 点击行选中 ProTable 封装笔记 五大实锤证据:AI不会终结低代码,只会倒逼技术进化 【硬核脑洞】16位实模式最后的疯狂:我们能否在 640KB 常规内存里手搓一个 MD 模拟器? 基于.Net的NetCoreKevin框架中AgentFramework实现AI智能体Skill和工具动态管理和加载 PostgreSQL 高可用集群 patroni 自动故障转移测试 自己使用C++开发的仿OpenClaw、Hermes智能体工具 记一次 .NET 某集群管理软件 内存暴涨分析 StarBlog番外(5) 从1.6到1.10,基于Avalonia AOT 开发的 Publisher 半年进化之路 Anthropic 把 SOC 误报率从 33% 砍到 7%,真正在干活的不是 Claude SM2演示所有 PEM 功能(生成、加解密、签名/验签) 用 Solon AI 从零构建 MCP 工具服务:让 AI Agent 拥有真实世界的能力 完整学习LLM(一):为什么我要系统学习大模型 Agent Harness Runtime 架构深度解析:工具循环、状态外置与长程任务调度 [对比学习LangChain和MAF-03]完全不同的Agent设计哲学 毫不夸张地说,这将是目前最全的AI测试教程!测试必看! AI Coding 为什么选择 TUI ,前端的新机会在哪里? 无需安装cc switch,10行命令帮你配置Claude Code+deepseek Context Engineering 到 Harness Engineering —— 大模型时代软件工程的新范式 OpenClaw.NET 兼容性目录指南(Compatibility Catalog) Nginx 上游健康检查插件 nginx-healthcheck-module 三角形数 AScript异步执行与await关键字 - rockey627 Vector Quantization for Recommendation 笔记 21. “|”不只是按位或,90%的人不知道 这 3 年做教育相关项目,我把一些经验整理成了一个开源 Agent Skills 项目 2026 西安本土 GEO 测评:灵怡云凭差异化站稳第一梯队 PortSwigger SQL注入LAB7 & LAB8 & LAB9 Splay 学习笔记 这款爆款激光粒度仪凭何全球狂销5000台?揭秘百特Bettersize2600“常青树”背后的硬核实力 十分钟学习 TypeScript 【学习笔记】《Python编程 从入门到实践》第1章学习笔记:Python环境搭建与Hello World(完整版) 初试 vibe coding:Tauri + React + Rust 构建的 windows 本地番茄钟 从 Vibecoding 入门,到 Agent 差点入土 IDEA Maven 手动替换第三方Jar包完整教程 填充与积累:积分与面积的可视化 告别 Django Admin!这个 NodeJS 全栈框架让你在 DTO 中直接配置 Table/Form 渲染 重建 AI 认知第 1 篇:基础认知——一张地图看懂 AI Landscape VAPD AgentKit:可组合 Agent 前端通用库实践 SolonCode v2026.5.21 发布,Web 能看项目,IM 能找队友 从 LangGraph 回到 Model-Tool Loop:更聪明的模型,正在让 Agent 架构重新变简单 从人工同步到自动闭环:跨 Java/.NET 代码转换工具的工程化实践 你的显卡能跑多少算子?用 55 个检查项,给 PyTorch GPU 环境做一次冒烟测试 Claude Code 快速开始 2分钟搞定全网巡检:一个脚本+五大必备 Python 库,让你一天干别人一周的活 最近面完 30 个想转 AI 测试的人,我麻了:80% 都踩了这 4 个坑! 4.3、多体交叉存储器、Cache的基本原理、相联存储器、 Cache地址映射与变换方法 简译项目的项目落地 OpenClaw Dreaming 记忆流水线底层架构:状态分层、证据留痕与检索回流 .NET 10 桌面 UI 框架的范式演进:Jalium.UI 与 MewUI 架构深度对比 [对比学习LangChain和MAF-02]基本编程模式的差异(下篇) 我的编程经历,从天桥地摊Basic到西藏阿里的.Net AOT。(续二) House of botcake与IOFILE任意读写 Markdown锚点跳转失败的解决办法 力扣之路01—两数之和 "Sample Is Feature: Beyond Item-Level, Toward Sample-Level Tokens for Unified Large Recommender Models" 论文笔记 拒绝宕机!用 Python 优雅榨干百万级 GIS 点矢量的裁剪极限 PyTorch KernelAgent 源码解读 ---(5)--- Dispatcher LIS续:动态规划 Windows端安装perry.ts 20. AI大模型输出转JSON,原来这么简单! 龙芯2k0300 - 智能车走马观碑组目标检测算法(下) Windows 应用自动上架 Microsoft Store 的自动化实践 很多企业做了 SBOM,为什么依然管不住依赖? 近 3 年浙江事业单位进面分一览,查分前心里有数! 详解 Docker 环境变量技术,以及如何通过环境变量一键部署客服系统 Claude Code 扩展体系 别让AI再从零写一堆优美的屎山了 A 股回测中的复权与 Point-in-Time 偏差:一次数据泄露的工程复盘 一文理清 HarmonyOS 6.0.2 涵盖的十个升级点 深度学习进阶(二十四)Swin 的二维 RPE Codex CLI 完全使用手册:从入门到精通 一次线上故障带你看懂 MySQL InnoDB 缓冲池 Rocky9.3 UEFI 引导崩溃解决办法 盘古石2026计算机pc手搓复现wp(刘洋加黄志远) 告别 Typora 后的新欢:我把所有笔记迁移到了 Obsidian 这个“第二大脑” 2026 高效客户管理系统,提升企业管理效率实现翻倍增长 11.3、网络身份认证的过程、数字签名、秘钥分发中心(KDC)、公钥认证中心(CA)、安全电子邮件 智驾仿真测试团队必看:ADAS HiL测试引入3DGS的ROI测算与结论! 2026年我做了一个大胆的决定:我要收徒弟了! dubbo服务调用源码 [对比学习LangChain和MAF-01]基本编程模式的差异(上篇) 工良吐槽篇:万字长文细说 AI 落地之笑谈
awk 命令练习(从入门到进阶)
EricYeung · 2026-05-23 · via 博客园_首页

一、环境准备

创建测试文件 students.txt:

cat > students.txt << EOF
1|张三|男|90|85|92
2|李四|女|88|92|89
3|王五|男|95|88|94
4|赵六|女|92|96|91
5|孙七|男|87|84|86
EOF

创建另一个测试文件 data.txt:

cat > data.txt << EOF
apple 5 2.5
banana 3 1.2
orange 8 3.0
grape 12 4.5
EOF

二、基础练习
练习1:打印整行

 #打印所有行
awk '{print}' students.txt

# 打印包含"女"的行
awk '/女/' students.txt

练习2:打印指定字段

# 打印第1列和第3列(默认分隔符为空格或制表符)
awk '{print $1, $3}' data.txt

# 使用 -F 指定分隔符为 |
awk -F'|' '{print $2, $3}' students.txt

# 打印最后一列
awk '{print $NF}' data.txt

练习3:格式化输出

# 格式化输出
awk -F'|' '{printf "姓名:%s,性别:%s\n", $2, $3}' students.txt

# 对齐输出
awk -F'|' '{printf "%-6s %-2s\n", $2, $3}' students.txt

三、进阶练习
练习4:数学运算

# 计算每行总和(data.txt第2列*第3列)
awk '{print $1, $2 * $3}' data.txt

# 计算学生平均分(students.txt第4-6列)
awk -F'|' '{sum=$4+$5+$6; avg=sum/3; print $2, "总分:"sum, "平均:"avg}' students.txt

练习5:使用变量和条件判断

# 找出平均分>=90的学生
awk -F'|' '{avg=($4+$5+$6)/3; if(avg>=90) print $2, avg}' students.txt

# 多条件:女学生且平均分>90
awk -F'|' '{avg=($4+$5+$6)/3; if($3=="女" && avg>90) print $2, avg}' students.txt

# 使用 case 语句
awk -F'|' '{
    if($4>=90) grade="优秀"
    else if($4>=80) grade="良好"
    else grade="及格"
    print $2, $4, grade
}' students.txt

练习6:BEGIN 和 END 块

# 统计行数、总分数
awk -F'|' 'BEGIN{print "姓名\t总分"; sum=0} 
           {total=$4+$5+$6; print $2"\t"total; sum+=total} 
           END{print "总分数:"sum, "平均:"sum/NR}' students.txt

# 添加表头
awk 'BEGIN{print "====== 学生成绩表 ======"; print "姓名\t语文\t数学\t英语"}
     -F'|' '{print $2"\t"$4"\t"$5"\t"$6}
     END{print "====== 共"NR"人 ======"}' students.txt

四、内置变量练习
练习7:常用内置变量

# NR: 行号,NF: 字段数
awk '{print "行号:"NR, "字段数:"NF, "内容:"$0}' data.txt

# 打印奇数行
awk 'NR%2==1' students.txt

# 打印第2-4行
awk 'NR>=2 && NR<=4' students.txt

# 打印字段数大于3的行
awk -F'|' 'NF>3' students.txt

五、实战综合练习
练习8:文本处理

# 去重
awk '!seen[$0]++' file.txt

# 统计重复行次数
awk '{count[$0]++} END{for(line in count) print count[line], line}' file.txt

# 按列求和
awk '{sum+=$2} END{print "总和:"sum, "平均值:"sum/NR}' data.txt

# 找出最大值
awk 'NR==1{max=$2} $2>max{max=$2} END{print "最大值:"max}' data.txt

练习9:复杂数据处理

# 分组统计(按性别统计平均分)
awk -F'|' '{sum[$3]+=$4+$5+$6; count[$3]++} 
           END{for(sex in sum) print sex, "平均分:"sum[sex]/count[sex]/3}' students.txt

# 输出到不同文件
awk -F'|' '{if($3=="男") print > "boys.txt"; else print > "girls.txt"}' students.txt

六、综合应用
题目1:日志分析
假设有日志文件 access.log:

192.168.1.1 - - [01/Jan/2024:10:00:01] "GET /index.html" 200
192.168.1.2 - - [01/Jan/2024:10:00:02] "POST /api" 404
192.168.1.1 - - [01/Jan/2024:10:00:03] "GET /about" 200
# 统计每个IP的访问次数
awk '{count[$1]++} END{for(ip in count) print ip, count[ip]}' access.log

# 统计HTTP状态码分布
awk '{status=$NF; count[status]++} END{for(code in count) print code, count[code]}' access.log

题目2:CSV 文件处理

# 转换分隔符(| 转成逗号)
awk -F'|' -v OFS=',' '{$1=$1; print}' students.txt > students.csv

# 多文件处理
awk 'NR==FNR{arr[$1]=$2; next} {print $0, arr[$1]}' file1.txt file2.txt

七、语法参考表

需求		awk命令
打印第n列	awk '{print $n}'
指定分隔符	awk -F','
行号		NR
字段数		NF
最后一列		$NF
条件过滤		awk '$3>90'
行范围		awk 'NR>=2 && NR<=5'
求和		awk '{sum+=$2} END{print sum}'
计数		awk '{count++} END{print count}'
去重		awk '!seen[$0]++'
格式化输出	awk '{printf "%-10s\n", $1}'